@@ -39,6 +39,7 @@
Pptt.aslc
Spcr.aslc
SsdtB1.asl
+ SsdtKcs.asl
SsdtXgbe.asl
[Packages]
@@ -74,6 +75,7 @@
gAmdStyxTokenSpaceGuid.PcdCntCTLBase
gAmdStyxTokenSpaceGuid.PcdCntBase0
gAmdStyxTokenSpaceGuid.PcdCntEL0Base0
+ gAmdStyxTokenSpaceGuid.PcdEnableKcs
gAmdStyxTokenSpaceGuid.PcdGicVersion
gAmdStyxTokenSpaceGuid.PcdGicHypervisorInterruptInterfaceBase
gAmdStyxTokenSpaceGuid.PcdGicVirtualInterruptInterfaceBase
@@ -171,6 +171,11 @@ InstallSystemDescriptionTables (
break;
+ case SIGNATURE_64 ('S', 't', 'y', 'x', 'K', 'c', 's', ' '):
+ if (!FixedPcdGetBool (PcdEnableKcs)) {
+ continue;
+ }
+
default:
switch (Table->Signature) {
case EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE:
@@ -295,31 +295,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "AMDINC", "SEATTLE ", 3)
})
}
-#if DO_KCS
- //
- // IPMI/KCS
- //
- Device (KCS0)
- {
- Name (_HID, "AMDI0300")
- Name (_CID, "IPI0001")
- Name (_STR, Unicode("IPMI_KCS"))
- Name (_UID, 0)
- Name (_CRS, ResourceTemplate() {
- Memory32Fixed(ReadWrite, 0xE0010000, 0x1) // KCS Data In/Out
- Memory32Fixed(ReadWrite, 0xE0010004, 0x1) // KCS Control/Status
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 421 } // GSIV
- })
- Method (_IFT) { // Interface Type
- Return ( 0x01) // IPMI KCS
- }
-
- Method (_SRV) { // Spec Revision
- Return (0x200) // IPMI Spec v2.0
- }
- }
-#endif // DO_KCS
-
//
// PCIe Root Bus
//
new file mode 100644
@@ -0,0 +1,47 @@
+/** @file
+
+ SSDT for IPMI controller
+
+ Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2014 - 2016, AMD Inc. All rights reserved.<BR>
+
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+
+DefinitionBlock ("SsdtKcs.aml", "SSDT", 2, "AMDINC", "StyxKcs ", 3)
+{
+ Scope (_SB)
+ {
+ //
+ // IPMI/KCS
+ //
+ Device (KCS0)
+ {
+ Name (_HID, "AMDI0300")
+ Name (_CID, "IPI0001")
+ Name (_STR, Unicode("IPMI_KCS"))
+ Name (_UID, 0)
+ Name (_CRS, ResourceTemplate() {
+ Memory32Fixed(ReadWrite, 0xE0010000, 0x1) // KCS Data In/Out
+ Memory32Fixed(ReadWrite, 0xE0010004, 0x1) // KCS Control/Status
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 421 } // GSIV
+ })
+ Method (_IFT) { // Interface Type
+ Return ( 0x01) // IPMI KCS
+ }
+
+ Method (_SRV) { // Spec Revision
+ Return (0x200) // IPMI Spec v2.0
+ }
+ }
+ }
+}
+
Move the IPMI/KCS device node from the DSDT into its own SSDT, and only install it if we have support for KCS enabled in the platform. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 2 + Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 5 +++ Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Dsdt.asl | 25 ----------- Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtKcs.asl | 47 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 25 deletions(-) -- 2.19.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel