Marshall Dawson has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/30037
Change subject: soc/amd/stoneyridge: Name IO061 in ASL appropriately ......................................................................
soc/amd/stoneyridge: Name IO061 in ASL appropriately
AMD traditionally claims the resource at I/O port 61 for the onboard PC-AT speaker. In later designs, the speaker may be omitted in favor of routing the SPKR signal to the codec.
Some systems implement neither, and for those it is not correct to identify the resource as a speaker. Modify the EISAID reported to the OS depending on the system design. The default is that port 61 is reported as reserved. In order to report a speaker, add #define in mainboard//dsdt.asl.
TEST=check /proc/ioports and iasl -d for both ways using a Grunt BUG=b:117818432
Change-Id: I33aafb187f9fea7b38aae43c399292c7521fcfc4 Signed-off-by: Marshall Dawson marshalldawson3rd@gmail.com --- M src/mainboard/amd/gardenia/dsdt.asl M src/soc/amd/stoneyridge/acpi/lpc.asl 2 files changed, 9 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/37/30037/1
diff --git a/src/mainboard/amd/gardenia/dsdt.asl b/src/mainboard/amd/gardenia/dsdt.asl index f190b4e..52bd90b 100644 --- a/src/mainboard/amd/gardenia/dsdt.asl +++ b/src/mainboard/amd/gardenia/dsdt.asl @@ -13,6 +13,8 @@ * GNU General Public License for more details. */
+#define MAINBOARD_HAS_SPEAKER 1 + /* DefinitionBlock Statement */ #include <arch/acpi.h> DefinitionBlock ( diff --git a/src/soc/amd/stoneyridge/acpi/lpc.asl b/src/soc/amd/stoneyridge/acpi/lpc.asl index a41357a..390d3b6 100644 --- a/src/soc/amd/stoneyridge/acpi/lpc.asl +++ b/src/soc/amd/stoneyridge/acpi/lpc.asl @@ -13,6 +13,12 @@ * GNU General Public License for more details. */
+#if IS_ENABLED(MAINBOARD_HAS_SPEAKER) +#define IO61_HID "PNP0800" /* AT style speaker */ +#else +#define IO61_HID "PNP0C02" /* reserved resource */ +#endif + /* 0:14.3 - LPC */ Device(LPCB) { Name(_ADR, 0x00140003) @@ -66,7 +72,7 @@ } /* End Device(_SB.PCI0.LpcIsaBr.TMR) */
Device(SPKR) { /* Speaker */ - Name(_HID,EISAID("PNP0800")) /* AT style speaker */ + Name(_HID,EISAID(IO61_HID)) /* AT style speaker */ Name(_CRS, ResourceTemplate() { IO(Decode16, 0x0061, 0x0061, 0, 1) })