bugGNU 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

Mon 14 May 2018 08:16:00 AM UTC, original submission:  

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.

Steven Noonan <neunon>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attached Files


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by neunon (Submitted the item)

    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

    Back to the top

    Powered by Savane 3.12.
    Corresponding source code