GNU GRUB - Bugs: bug #53895, "acpI" command uses RSDT...
You are not allowed to post comments on this tracker with your current authentication level.
bug #53895: "acpI" command uses RSDT instead of XSDT
Submitter: | Steven Noonan <neunon> | ||
Submitted: | 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: | |
Open/Closed: | Open | Release: | Git master |
Release: | Reproducibility: | Every Time | |
Planned Release: | None |
Attached Files
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follows 1 latest change.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2018-05-14 | neunon | Attached File | - | ![]() |
Added rough-patch-use-xsdt-over-rsdt.patch, #44151 |
Powered by Savane 3.12.
Corresponding source code
I had intended to use this in my grub config:
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:
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:
And seeing the results:
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.