[Linaro-uefi,3/3] D05: Support ipmi through LPC

Message ID 1494920174-72966-1-git-send-email-chenhui.sun@linaro.org
State New
Headers show
Series
  • Untitled series #1436
Related show

Commit Message

Chenhui Sun May 16, 2017, 7:36 a.m.
From: Chenhui Sun <chenhui.sun@linaro.com>

Add ipmi description according to the new LPC driver of
Linux kernel 4.10

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: zhichang yuan <yuanzhichang@hisilicon.com>
Signed-off-by: Heyi Guo <guoheyi@huawei.com>
Signed-off-by: Yi Li <Phoenix.liyi@huawei.com>
Signed-off-by: Chenhui Sun <sunchenhui@huawei.com>
---
 Chips/Hisilicon/Hi1616/D05AcpiTables/Dsdt/Lpc.asl | 91 +++++++++++++++++++++--
 1 file changed, 85 insertions(+), 6 deletions(-)

Patch hide | download patch | download mbox

diff --git a/Chips/Hisilicon/Hi1616/D05AcpiTables/Dsdt/Lpc.asl b/Chips/Hisilicon/Hi1616/D05AcpiTables/Dsdt/Lpc.asl
index 0965afc..d4b2372 100644
--- a/Chips/Hisilicon/Hi1616/D05AcpiTables/Dsdt/Lpc.asl
+++ b/Chips/Hisilicon/Hi1616/D05AcpiTables/Dsdt/Lpc.asl
@@ -16,10 +16,89 @@ 
 // LPC
 //
 
-Device (LPC0)
-{
-  Name(_HID, "HISI0191")  // HiSi LPC
-  Name (_CRS, ResourceTemplate () {
-    Memory32Fixed (ReadWrite, 0xa01b0000, 0x1000)
-  })
+Scope(_SB) {
+  Device (LPC0) {
+    Name (_HID, "HISI0191")  // HiSi LPC
+    Name (_CRS, ResourceTemplate () {
+      Memory32Fixed (ReadWrite, 0xa01b0000, 0x1000)
+    })
+  }
+
+  Device (LPC0.IPMI) {
+    Name (_HID, "IPI0001")
+    Method (_IFT) {
+      Return (0x03)
+    }
+    Name (LORS, ResourceTemplate() {
+      QWordIO (
+        ResourceConsumer,
+        MinNotFixed,     // _MIF
+        MaxNotFixed,     // _MAF
+        PosDecode,
+        EntireRange,
+        0x0,             // _GRA
+        0xe4,            // _MIN
+        0x3fff,          // _MAX
+        0x0,             // _TRA
+        0x04,            // _LEN
+        , ,
+        BTIO
+      )
+    })
+    CreateQWordField (LORS, BTIO._MIN, CMIN)
+    CreateQWordField (LORS, BTIO._MAX, CMAX)
+    CreateQWordField (LORS, BTIO._LEN, CLEN)
+
+    Method (_PRS, 0) {
+      Return (LORS)
+    }
+
+    Method (_CRS, 0) {
+      Return (LORS)
+    }
+    Method (_SRS, 1) {
+      CreateQWordField (Arg0, \_SB.LPC0.IPMI.BTIO._MIN, IMIN)
+      Store (IMIN, CMIN)
+      CreateQWordField (Arg0, \_SB.LPC0.IPMI.BTIO._MAX, IMAX)
+      Store (IMAX, CMAX)
+    }
+  }
+
+  Device (LPC0.CON0) {
+    Name (_HID, "HISI1031")
+    Name (_CID, "PNP0501")
+    Name (LORS, ResourceTemplate() {
+      QWordIO (
+        ResourceConsumer,
+        MinNotFixed,     // _MIF
+        MaxNotFixed,     // _MAF
+        PosDecode,
+        EntireRange,
+        0x0,             // _GRA
+        0x2F8,           // _MIN
+        0x3fff,          // _MAX
+        0x0,             // _TRA
+        0x08,            // _LEN
+        , ,
+        IO02
+      )
+    })
+    CreateQWordField (LORS, IO02._MIN, CMIN)
+    CreateQWordField (LORS, IO02._MAX, CMAX)
+    CreateQWordField (LORS, IO02._LEN, CLEN)
+
+    Method (_PRS, 0) {
+      Return (LORS)
+    }
+
+    Method (_CRS, 0) {
+      Return (LORS)
+    }
+    Method (_SRS, 1) {
+      CreateQWordField (Arg0, \_SB.LPC0.CON0.IO02._MIN, IMIN)
+      Store (IMIN, CMIN)
+      CreateQWordField (Arg0, \_SB.LPC0.CON0.IO02._MAX, IMAX)
+      Store (IMAX, CMAX)
+    }
+  }
 }