-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UEFI] Unable to get RSDP for ACPI v2 in some cases #172
Comments
According to https://stackoverflow.com/questions/60137506/qemu-support-for-acpi-2-0 the SeaBIOS version used by qemu may be too old. |
I don't think it's a QEMU problem, because I was able to correctly access ACPI2 RSDP with the patched bootloder. https://github.com/gifnksm/bootloader/commit/45b01fdefee9698ec412291904e19abe91d11c04 |
On UEFI systems we could search for the ACPI v2 RSDP first and only look for a v1 RSDP if no v2 RSDP is found. The question is what we want to do on BIOS systems. Right now, we do an RSDP search in common memoy regions that returns the first RSDP tag found. Maybe it makes sense to make the search function an Edit: I opened rust-osdev/acpi#92 to discuss the BIOS RSDP search changes. |
Aside from the discussion in rust-osdev/acpi#92, I had another look at the ACPI spec and it does offer some guidance on the correct thing for us to do on UEFI:
There's nothing similar in the BIOS section, so I think the current approach, which only expects there to be a single RSDP in the relevant areas, is correct. |
Thanks for checking! Looks like we need to try it on real hardware then. I'm also fine with leaving the BIOS implementation as it is for now until someone encounters an issue with it. |
The value stored in
BootInfo::rsdp_addr
is the first one found in the RSDP of ACPI v1 and ACPI v2 (source code).In my environment (QEMU), the RSDP for ACPI v1 is always stored.
Is it possible to implement a way to specify the ACPI version in the RSDP passed to the kernel?
Alternatively, there may be a way to pass the
system_table
to the kernel so that the kernel can use the UEFI runtime features.The text was updated successfully, but these errors were encountered: