URL: <http://savannah.gnu.org/bugs/?53895>
Summary: "acpI" command uses RSDT instead of XSDT Project: GNU GRUB Submitted by: neunon Submitted on: Mon 14 May 2018 08:16:00 AM UTC Category: Booting Severity: Major Priority: 5 - Normal Item Group: None Status: None Privacy: Public Assigned to: None Originator Name: Originator Email: Open/Closed: Open Discussion Lock: Any Release: Release: Git master Reproducibility: Every Time Planned Release: None _______________________________________________________ Details: I had intended to use this in my grub config: > acpi --exclude BGRT Which makes it so that Windows will correctly display a logo on boot, even if the UEFI firmware has already displayed one on the screen (it gets clobbered when GRUB renders anyway, so it's not useful). It worked, but it caused an unexpected problem. It turns out my system has two different versions of the FADT. I have one with revision 2 living in the RSDT pointer list, and one with revision 5 living in the XSDT pointer list. When running the "acpi" command, it sort of does the wrong thing. It constructs ACPI tables from the pointers in the RSDT pointer list, and seems to drop the contents of the XSDT on the floor. (Incidentally, the revision 5 copy of the FADT is the better one for Windows to use, in my case. Both copies of the table have the LOW_POWER_S0_IDLE_CAPABLE flag set, but since that's an ACPIv5 feature, Windows ignores the flag in the rev2 copy of the FADT. Since my system has working S0 "modern standby" but completely broken S3 sleep, I really need the revision 5 version of the table.) It's easy to observe the "acpi" command behavior by doing something like: > lsacpi In my case, there are two sets of ACPI tables listed, the ones pointed at by RSDT and the ones pointed at by XSDT. Now remove BGRT: > acpi --exclude BGRT And seeing the results: > lsacpi And in my particular case, it's clear that the "acpi" command is only considering the contents of the RSDT when doing its work. I've attached a very rough patch that solved this issue for my case, but it's probably the wrong solution. It seems like the "acpi" command should really be doing work agianst both the RSDT and the XSDT and preserving both of them. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Mon 14 May 2018 08:16:00 AM UTC Name: rough-patch-use-xsdt-over-rsdt.patch Size: 2KiB By: neunon <http://savannah.gnu.org/bugs/download.php?file_id=44151> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?53895> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/ _______________________________________________ Bug-grub mailing list Bug-grub@gnu.org https://lists.gnu.org/mailman/listinfo/bug-grub