<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 29, 2016 at 2:00 PM, Saket Sinha <span dir="ltr"><<a href="mailto:saket.sinha89@gmail.com" target="_blank">saket.sinha89@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Mar 1, 2016 at 1:14 AM, Saket Sinha <<a href="mailto:saket.sinha89@gmail.com">saket.sinha89@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
</span><span class="">> Congratulations to the coreboot team for selection in GSOC 2016.<br>
<br>
</span>Sorry for the typo. I meant the RTEMS team. I worked for Coreboot last<br>
year so still relate to  with GSOC everytime mistakenly.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> I am interested in working on x86_64 BSP as GSOC2016 project with<br>
> RTEMS and with initial guidance from Joel as to how to get started, I<br>
> am working on the same.<br><br></div></div></blockquote><div><br></div><div>Great! This is a nice project we need.</div><div><br></div><div>Have you done the RTEMS GSoC hello world project?</div><div><br></div><div>The x86_64 now has tools for 4.12. It needs a port and a BSP. The BSP can share</div><div>with the pc386 but we likely have to address the dependency on legacy hardware.</div><div>Some of those issues are captured in the pc386 project page. I have started to try</div><div>to fix the dependency on legacy PCI BIOS but there is more like APIC support and</div><div>device probes.  </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
> Looking forward to working with the community for the same.<br>
> Regards,<br>
> Saket Sinha<br>
><br>
><br>
> On Wed, Feb 10, 2016 at 7:08 PM, Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br>
>><br>
>> On Feb 9, 2016 10:37 PM, "Saket Sinha" <<a href="mailto:saket.sinha89@gmail.com">saket.sinha89@gmail.com</a>> wrote:<br>
>>><br>
>>> Hi Joel,<br>
>>><br>
>>> Thanks for your inputs.<br>
>>><br>
>>><br>
>>><br>
>>> On Wed, Feb 10, 2016 at 1:06 AM, Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br>
>>> ><br>
>>> ><br>
>>> > On Tue, Feb 9, 2016 at 12:08 PM, Saket Sinha <<a href="mailto:saket.sinha89@gmail.com">saket.sinha89@gmail.com</a>><br>
>>> > wrote:<br>
>>> >><br>
>>> >> Hi,<br>
>>> >><br>
>>> >> I think this is early for this but I need to enquire if x86_64_BSP (<br>
>>> >> <a href="https://devel.rtems.org/wiki/Developer/Projects/Open/x86_64_BSP" rel="noreferrer" target="_blank">https://devel.rtems.org/wiki/Developer/Projects/Open/x86_64_BSP</a> )<br>
>>> >> could be taken as a GSOC project this year.<br>
>>> >><br>
>>> ><br>
>>> > Yes. Assuming you mean the x86_64 bit port and accompanying BSP.<br>
>>> ><br>
>>> > If you noticed my post yesterday, we have tripped across a new embedded<br>
>>> > PC<br>
>>> > without legacy PCI BIOS support.<br>
>>> ><br>
>>><br>
>>> Could you provide the link. I am not able to locate it on mailing list<br>
>>> or your blog.<br>
>><br>
>> I only posted a question this week had anyone attempted to use RTEMS on a PC<br>
>> without legacy BIOS. I think the answer is no.<br>
>><br>
>> I have done a little searching for how to use the newer UEFI services to<br>
>> replace those we use the video and PCI but so far have only found high level<br>
>> information.<br>
>><br>
>> Sorry. This one is a known need with only early research. I was going to dig<br>
>> into the FreeBSD source next.<br>
>><br>
>>> > Beyond the obvious port, for the purposes of your effort, there are<br>
>>> > a couple of bugs and some modernization needed by the pc386 BSP which<br>
>>> > you will likely have to address.<br>
>>> ><br>
>>> > + PCI BIOS uses legacy support. Needs to support new and old for 32-bit<br>
>>> > and new only for 64 bit.<br>
>>> > + Better APIC support. pc386 uses legacy PIC and some LPIC for SMP.<br>
>>> > Probably Ok for both 32 and 64 bit to support APIC only.<br>
>>> > + i386 does not have Thread Local Support. Both should have it.<br>
>>> > + i386 has a ticket for SMP synchronization during context switch.<br>
>>> > The code does not use atomics. Should be fixed and x86_64 follow the<br>
>>> > correct pattern.<br>
>>> ><br>
>>><br>
>>> So now my question is that could these be solved on an emulator like<br>
>>> qemu-x86, atleast for an initial POC ?<br>
>>> I mean is a x86_64 hardware required for it( though I have a Minnowmax<br>
>>> board.)<br>
>>><br>
>><br>
>> I think qemu can be used for all of this. You can certainly do the APIC<br>
>> support without addressing the legacy video and PCI BIOS.<br>
>><br>
>> Similar for the TLS and SMP issue.<br>
>><br>
>> I believe the entire thing could be brought up and debugged on qemu with<br>
>> checkouts on real HW. Either the Minnow or even a desktop PC with the right<br>
>> BIOS settings. None of this is particularly new. APIC dates back at least a<br>
>> decade.<br>
>><br>
>>><br>
>>> > Basically x86_64 should assume a modern (non-legacy) PC and pc386<br>
>>> > needs updating to support newer systems. Common hardware platform<br>
>>> > so hopefully the software is standard.<br>
>>> ><br>
>>> > I was going to write this up as a "PC386 Modernization" Project but some<br>
>>> > of it makes sense as a side-effect of your project. That project idea<br>
>>> > also<br>
>>> > included killing AT bus NICs which you wouldn't have any reason to get<br>
>>> > near.<br>
>>> ><br>
>>> > You need a subtask list (e.g. todo list) and we need to help you flesh<br>
>>> > it<br>
>>> > out. I only hit a few non-obvious highlights.<br>
>>> ><br>
>>><br>
>>> Let me know how to dig deeper on this. Looking at the code, right  but<br>
>>> than exactly what sections ?<br>
>>><br>
>><br>
>> libbsp/shared/i386/pci is the current legacy PCI code.<br>
>><br>
>> The IRQ code should also be under shared.<br>
>><br>
>> I will have to feel to see where the video probe that is failing is located.<br>
>><br>
>> The nice thing is that each of these three can be completed in the context<br>
>> of the current BSP.<br>
>><br>
>>> Regards,<br>
>>> Saket Sinha<br>
</div></div></blockquote></div><br></div></div>