<p dir="ltr"><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">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 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.</p>
<p dir="ltr">I only posted a question this week had anyone attempted to use RTEMS on a PC without legacy BIOS. I think the answer is no.</p>
<p dir="ltr">I have done a little searching for how to use the newer UEFI services to replace those we use the video and PCI but so far have only found high level information.</p>
<p dir="ltr">Sorry. This one is a known need with only early research. I was going to dig into the FreeBSD source next.</p>
<p dir="ltr">> > 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 board.)<br>
></p>
<p dir="ltr">I think qemu can be used for all of this. You can certainly do the APIC support without addressing the legacy video and PCI BIOS.</p>
<p dir="ltr">Similar for the TLS and SMP issue.</p>
<p dir="ltr">I believe the entire thing could be brought up and debugged on qemu with checkouts on real HW. Either the Minnow or even a desktop PC with the right BIOS settings. None of this is particularly new. APIC dates back at least a decade.</p>
<p dir="ltr">><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 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 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>
></p>
<p dir="ltr">libbsp/shared/i386/pci is the current legacy PCI code. </p>
<p dir="ltr">The IRQ code should also be under shared. </p>
<p dir="ltr">I will have to feel to see where the video probe that is failing is located.</p>
<p dir="ltr">The nice thing is that each of these three can be completed in the context of the current BSP.<br></p>
<p dir="ltr">> Regards,<br>
> Saket Sinha<br>
</p>