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>
This commit is contained in:
Timothy Pearson 2017-05-22 13:14:06 -05:00
parent 5513c0a216
commit 6b239d8e08
1 changed files with 31 additions and 0 deletions

View File

@ -53,6 +53,9 @@ DefinitionBlock (
#include <southbridge/amd/common/acpi/sleepstates.asl> #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 /* The _PIC method is called by the OS to choose between interrupt
* routing via the i8259 interrupt controller or the APIC. * routing via the i8259 interrupt controller or the APIC.
* *
@ -486,6 +489,13 @@ DefinitionBlock (
Name (_HID, EisaId ("PNP0A05")) Name (_HID, EisaId ("PNP0A05"))
Name (_ADR, 0x00140003) 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 */ /* Real Time Clock Device */
Device(RTC0) { Device(RTC0) {
Name(_HID, EISAID("PNP0B00")) /* AT Real Time Clock (not PIIX4 compatible) */ 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 */ /* High Precision Event Timer */