Hi All,

I've started to understand what needs to be done to support booting Hurd from UEFI. I'm hoping to expand the hardware that I have available for testing purposes. I've made a little progress in as far as getting gnumach to boot and launch tasks. I'm using a serial console and Qemu to avoid the issue of the graphical console for the moment. One thing at a time...

So far, I've only hit 2 main issues:

1) There seems to be something amiss with the multiboot structure passed from the bootloader since struct multiboot_raw_info.mem_upper has a lower value (whilst using the same 2G VM) than when using BIOS. So much lower that boot doesn't get past page table allocation before panicing. This might perhaps be something simple but I've hacked a workaround for now which allows progress.

2) The ACPI RSDP cannot be located using the same BIOS method as currently. I believe other OS pass the root pointer from the bootloader as a kernel parameter. I notice that multiboot2 supports supplying this pointer in the multiboot structure which might be a simpler method available to Hurd. Is there any possibility of moving to multiboot2 ? Anyway, if not, there is perhaps a way of discovering the root pointer from grub without resorting to a custom EFI program to do that (Investigation required) which could then be passed as a kernel boot parameter.

For the moment, I have instead scanned all memory regions of type BIOSMEM_TYPE_ACPI in the biosmem_map to find the signature. This has worked as a temporary measure.

These 2 changes allow gnumach to launch the pci-arbiter which fails because of the same issue above. I've had a quick look at libacpica and there's no obvious sign that it considers UEFI. Perhaps there is a more recent version that might be used? Further investigation required.

Plenty for me to do....

Cheers,

Mike.



Reply via email to