x86_64 BSP as GSOC2016 project

Joel Sherrill joel at rtems.org
Wed Mar 9 15:44:07 UTC 2016

On Tue, Mar 8, 2016 at 8:46 PM, Saket Sinha <saket.sinha89 at gmail.com> wrote:

> Hi Joel,
> On Tue, Mar 1, 2016 at 5:40 AM, Joel Sherrill <joel at rtems.org> wrote:
> >
> >
> > On Mon, Feb 29, 2016 at 2:00 PM, Saket Sinha <saket.sinha89 at gmail.com>
> > wrote:
> >>
> >> On Tue, Mar 1, 2016 at 1:14 AM, Saket Sinha <saket.sinha89 at gmail.com>
> >> wrote:
> >> > Hi,
> >> >
> >> > Congratulations to the coreboot team for selection in GSOC 2016.
> >>
> >> Sorry for the typo. I meant the RTEMS team. I worked for Coreboot last
> >> year so still relate to  with GSOC everytime mistakenly.
> >>
> >> >
> >> > I am interested in working on x86_64 BSP as GSOC2016 project with
> >> > RTEMS and with initial guidance from Joel as to how to get started, I
> >> > am working on the same.
> >>
> >
> > Great! This is a nice project we need.
> >
> > Have you done the RTEMS GSoC hello world project?
> >
> Yes. I am done with that.
> > The x86_64 now has tools for 4.12. It needs a port and a BSP. The BSP can
> > share
> > with the pc386 but we likely have to address the dependency on legacy
> > hardware.
> > Some of those issues are captured in the pc386 project page. I have
> started
> > to try
> > to fix the dependency on legacy PCI BIOS but there is more like APIC
> support
> > and
> > device probes.
> >
> I have tried building x86_64 with RTEMS source builder just to verify
> where we are.
> Now my question in how to test it?
> Do you want me to run it on a real  x86_64 hardware or qemu-x86_64
> would be enough to test it ?

For all the initial work, qemu-system-x86_64 will be sufficient. Once it is
functional enough, it will need to be periodically tested on real HW.

As a starting point, you will need to add score/cpu/x86_64 and get a
stub compiling with no BSP. Then you need a simple x86_64 BSP.
Initially I would recommend focusing on the minimum required to
run hello world.

But a lot of the regular pc386 BSP should be sharable and reusable with
an x86_64 BSP. I see that as a real challenge in this effort. We need
to decide where to move shared code. Since it is shared between two
architectures, it is something like libbsp/shared/PC but that is open
for discussion. For sure, you want to share as much code as possible
and ensure the pc386 BSP continues to work.

FWIW I have a series of patches that remove the need for legacy
PCI BIOS and allow the use of PCI UARTs as the console. But
there are other general issues impacting both 32 and 64 bit BSPs.

+ we need APIC support
+ probe for what's available using ACPI
   - probe for legacy IDE/ATA when not there hangs
   - need to probe for legacy COM ports

But you have to get by hello world on x86_64 first.

Work on your proposal so we can fine tune the plan.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160309/488be00d/attachment.html>

More information about the devel mailing list