Bug #12195
closedacpidump failed under EFI
100%
Updated by John Levon over 3 years ago
On various systems, acpidump fails with:
# acpidump EBDA (0x0009f800) found, but is not mappable Could not get ACPI tables, AE_NOT_FOUND
This turns out to be due to the fact that acpi-root-tab is pointing to the bootloader's copy of the RSDP, instead of the real system-provided RSDP. As the loader copy lives in boot mem, it is only necessarily valid until we free that region. Under both problematic systems, this location has been used for OS memory. Then acpidump falls back to looking at the EBDA, which isn't meaningful on EFI systems.
Note that acpica in the kernel happens to work because it attaches prior to us freeing up the boot mem area.
And on legacy systems, quite often it happens that the boot mem area ends up in non-mapped page in the memlists anyway.
To fix this, we'll do a little more work in fakebop such that we set the property to the real RSDP location; we only fall back to the bootloader's copy if we can't find it elsewhere.
Updated by John Levon over 3 years ago
I tested this with:
iPXE booted legacy and EFI (so bootloader doesn't provide us an RSDP copy)
loader booted legacy and EFI
SmartOS KVM instance
as well as on a couple of other systems. On all I verified the property looked good and acpidump now/still worked.
Updated by Electric Monk over 3 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit 6554ec17858060401cf0f52e78b57fec69f7842d
commit 6554ec17858060401cf0f52e78b57fec69f7842d Author: John Levon <john.levon@joyent.com> Date: 2020-01-16T09:43:04.000Z 12195 acpidump failed under EFI Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Jason King <jason.brian.king@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>