[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #53895] "acpI" command uses RSDT instead of XSDT
From: |
Steven Noonan |
Subject: |
[bug #53895] "acpI" command uses RSDT instead of XSDT |
Date: |
Mon, 14 May 2018 04:16:02 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36 |
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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #53895] "acpI" command uses RSDT instead of XSDT,
Steven Noonan <=