x86_64 BSP : Status Update [ticket #2898]

Amaan Cheval amaan at rtems.org
Mon Mar 29 10:08:54 UTC 2021

Hey Shashvat!

I've CC'd Chris who may have something to add given that the original
ticket seems to have an update from John Millard - not sure if John's
made progress since my work on the x86-64 BSP was upstreamed, so I'll
let Chris speak to that.

I wouldn't recommend running it on real hardware yet - I don't think
anyone has tested it on hardware.
Not all tests in the testsuite pass in QEMU either, from what I
remember (some basic ones do), so that will likely be what you'll need
to work on.

To run the BSP in QEMU, you'll need to follow these instructions:

Let me know if you run into any issues, since the setup can be a bit
complicated. In summary, for the setup, you'll want to:

- Build RTEMS/RSB with x86-64 as the BSP (this should be the same as
what you did for your GSoC proof in terms of building the BSP and
- Get QEMU
- Build OVMF's open-source UEFI firmware
- Get FreeBSD booting in QEMU with UEFI, and then replace it's
`kernel` with a built RTEMS application (such as the ticker tests or
hello.exe, etc.)
- Run FreeBSD image with RTEMS app as its kernel

We need to do this because for the x86-64 BSP, we use FreeBSD's
bootloader. This is slightly problematic, because FreeBSD's bootloader
only supports UFS/ZFS for filesystems.
I think ideally, we'll want a UEFI-compatible bootloader which can
support more filesystems - FreeBSD's bootloader is functional, but
perhaps not the best for a dev/prod environment long-term - maybe
Joel/Chris can comment on this.
(For eg. most Linux systems can't mount UFS/ZFS unless specifically
compiled for that support, which means the dev-environment is quite
hacky and slow - I had to use the network to get my RTEMS apps into
the FreeBSD filesystem for the bootloader to use it.)

After the bootloader issues are made easier (so we don't need to
replace FreeBSD's kernel every time we want to recompile our RTEMS app
and re-run it), the next aim will probably be to make as many tests
pass as possible, and to improve automated tests, such as a
configuration for rtems-test[1].
I recall there being some edge-cases in the clock driver, so you'll
likely have the failing tests to guide which drivers you need to work
on in the BSP.

If there's still time after that, I think we can figure out which
specific portions need to be worked on (i.e. running on hardware,
improving existing drivers, adding libbsd support, SMP support, etc.).

In case you haven't seen this already, this is my blog post from my
GSoC on the x86-64 BSP, summarizing the status as of then, as well as
potential areas for improvement next:

[1] https://docs.rtems.org/branches/master/user/tools/tester.html

On Mon, Mar 29, 2021, 12:58 PM Shashvat <shashvatjain2002 at gmail.com> wrote:
> Hello everyone !
> I wanted to know the status of the x86_64 BSP's development.
> Also it would be great help if someone guides me to get it running on QEMU or my x64 based laptop running legacy BIOS.(not UEFI)
> Regards
> Shashvat

More information about the devel mailing list