Troubles booting seL4 under OVMF and QEMU

Hello all,

I am trying to boot seL4 under OVMF and QEMU but I have run into the issue that the seL4 kernel fails to find the ACPI tables.
The error is “BIOS: No ACPI support detected”.
I checked that the "RSD PTR " string is present in memory with gdb, but it is not in the range [BIOS_PADDR_START, BIOS_PADDR_END). I suppose my search might have just found it in the kernel image, since the string address did not have the expected alignment (not 8-byte aligned).

To boot seL4, I installed debian, added the seL4 kernel and drivers image to /boot, added a menu entry to grub. and manually selected the entry when booting the kernel.

I start QEMU with the following command:
qemu-system-x86_64 -machine q35 -hda debian_sel4.img -m 2048 -smp cpus=2 -enable-kvm -cpu Nehalem,-vme,+pdpe1gb,-xsave,-xsaveopt,-xsavec,-fsgsbase,-invpcid,enforce -serial mon:stdio -s -drive if=pflash,format=raw,unit=0,file=OVMF_CODE.fd,readonly -drive if=pflash,format=raw,unit=1,file=OVMF_VARS.fd

Booting without OVMF, thus SeaBIOS, works fine.

Kind Regards,
Martin

I think I answered my own question.

The seL4 loader searches for the RDSP as supposed to on PC-IA systems.
With OVMF the loader needs to follow the UEFI protoctol for finding the RDSP.
AFAIU, this requires that the real loader (in my case GRUB), has to gather the necessary information, pass it to the seL4 loader and the seL4 loader needs to use it do the kernel loading.
In the case of Linux, this structure is boot_params but I do not know what would be passed to the seL4 loader when booted on a UEFI-enabled system.

Is this correct?

I think I eventually resolved the issue.

I was using multiboot instead of multiboot2. I am not familiar with the difference but one of the seL4 patches hinted that only multiboot2 can be used to boot on a UEFI-supported system.

Booting with OVMF now works.

The thread can be closed now.