summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2017-05-22 13:14:06 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2019-01-22 22:34:21 +0000
commit6b239d8e08a8cf61bbadc562a3e397386da737f3 (patch)
tree5eb4f38753782b066e898d0d8b978c53d6d48ff1
parent5513c0a21646c0c5fd901d1b960bad4e54cfcc3b (diff)
downloadcoreboot-6b239d8e08a8cf61bbadc562a3e397386da737f3.tar.xz
mb/asus/kgpe-d16: Add BMC KCS to ACPI
The BMC KCS interface must be advertised to the host OS in order for automatic load of the ipmi module to work. Expose the KCS interface via ACPI. Change-Id: Ia251334ae44668c2260d8d2e816f85f1f62faac7 Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com> Reviewed-on: https://review.coreboot.org/c/19822 Reviewed-by: Piotr Kubaj <pkubaj@anongoth.pl> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/mainboard/asus/kgpe-d16/dsdt.asl31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/mainboard/asus/kgpe-d16/dsdt.asl b/src/mainboard/asus/kgpe-d16/dsdt.asl
index efb67a558c..ea524887cb 100644
--- a/src/mainboard/asus/kgpe-d16/dsdt.asl
+++ b/src/mainboard/asus/kgpe-d16/dsdt.asl
@@ -53,6 +53,9 @@ DefinitionBlock (
#include <southbridge/amd/common/acpi/sleepstates.asl>
+ /* IPMI KCS enable */
+ Name (KCSE, 0x1)
+
/* The _PIC method is called by the OS to choose between interrupt
* routing via the i8259 interrupt controller or the APIC.
*
@@ -486,6 +489,13 @@ DefinitionBlock (
Name (_HID, EisaId ("PNP0A05"))
Name (_ADR, 0x00140003)
+ OperationRegion (BMRG, SystemIO, 0xca2, 0x02) /* BMC KCS registers */
+ Field (BMRG, AnyAcc, NoLock, Preserve)
+ {
+ BMRI, 8, /* Index */
+ BMRD, 8, /* Data */
+ }
+
/* Real Time Clock Device */
Device(RTC0) {
Name(_HID, EISAID("PNP0B00")) /* AT Real Time Clock (not PIIX4 compatible) */
@@ -607,6 +617,27 @@ DefinitionBlock (
})
}
}
+
+ Device (KCS1) { /* IPMI KCS */
+ Name (_HID, EISAID ("IPI0001")) /* ASpeed BMC */
+ Method (_STA, 0, NotSerialized) {
+ If (KCSE) { /* Detection enabled */
+ If (LNotEqual (BMRD, 0xff)) {
+ Return (0x0f) /* Device present */
+ }
+ Return (Zero)
+ }
+ Return (Zero)
+ }
+ Method (_CRS, 0) {
+ Return (ResourceTemplate() {
+ IO(Decode16, 0x0ca2, 0x0ca2, 0x01, 0x02)
+ })
+ }
+ Method (_IFT, 0, NotSerialized) { /* Interface type */
+ Return (One) /* KCS interface */
+ }
+ }
}
/* High Precision Event Timer */