[coreboot-gerrit] New patch to review for coreboot: getac/p470: Clean up SIO access in ACPI

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue Aug 11 11:46:52 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11160

-gerrit

commit 62ce415f88c22d6d99c5c97a121d0239bda3f8c2
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Tue Aug 11 10:54:15 2015 +0200

    getac/p470: Clean up SIO access in ACPI
    
    This adapts Ia5101d5a1 for the p470.
    
    Change-Id: Ib09a0bc58fddd6240834cc890f00df91a74f4161
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 src/mainboard/getac/p470/acpi/superio.asl | 110 ++++++++++++------------------
 1 file changed, 45 insertions(+), 65 deletions(-)

diff --git a/src/mainboard/getac/p470/acpi/superio.asl b/src/mainboard/getac/p470/acpi/superio.asl
index cca32cd..5ffba15 100644
--- a/src/mainboard/getac/p470/acpi/superio.asl
+++ b/src/mainboard/getac/p470/acpi/superio.asl
@@ -127,28 +127,23 @@ Device (SIO1)
 				Return(NONE)
 			}
 
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IOA._MIN, IOLO)
-			CreateByteField(RSRC, 0x03, IOHI) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IOA._MAX, IORL)
-			CreateByteField(RSRC, 0x05, IORH) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IRA._INT, IRQL)
-
-			Store (READ(0, 0x24, 0xff), Local0)
-			And (Local0, 0xc0, Local1)
-			ShiftRight(Local1, 0x06, Local1)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IOA._MIN, IOMN)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IOA._MAX, IOMX)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR1._CRS._IRA._INT, IRQ)
+
+			/* I/O Base */
+			Store (READ(0, 0x24, 0xfe), Local0)
 			ShiftLeft(Local0, 0x02, Local0)
-			Store(Local0, IOLO)
-			Store(Local1, IOHI)
-			Store(IOLO, IORL)
-			Store(IOHI, IORH)
+			Store(Local0, IOMN)
+			Store(Local0, IOMX)
 
 			/* Interrupt */
 			Store(READ(0, 0x28, 0xf0), Local0)
 			ShiftRight(Local0, 4, Local0)
-			ShiftLeft(1, Local0, IRQL)
+			ShiftLeft(1, Local0, IRQ)
 			Return(RSRC)
 		}
 
@@ -282,28 +277,23 @@ Device (SIO1)
 				Return(NONE)
 			}
 
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IOB._MIN, IOLO)
-			CreateByteField(RSRC, 0x03, IOHI)
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IOB._MAX, IORL)
-			CreateByteField(RSRC, 0x05, IORH)
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IRB._INT, IRQL)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IOB._MIN, IOMN)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IOB._MAX, IOMX)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR2._CRS._IRB._INT, IRQ)
 
-			Store (READ(0, 0x25, 0xff), Local0)
-			And (Local0, 0xc0, Local1)
-			ShiftRight(Local1, 0x06, Local1)
+			/* I/O Base */
+			Store (READ(0, 0x25, 0xfe), Local0)
 			ShiftLeft(Local0, 0x02, Local0)
-			Store(Local0, IOLO)
-			Store(Local1, IOHI)
-			Store(IOLO, IORL)
-			Store(IOHI, IORH)
+			Store(Local0, IOMN)
+			Store(Local0, IOMX)
 
 			/* Interrupt */
 			Store(READ(0, 0x28, 0x0f), Local0)
 			ShiftRight(Local0, 4, Local0)
-			ShiftLeft(1, Local0, IRQL)
+			ShiftLeft(1, Local0, IRQ)
 			Return(RSRC)
 		}
 
@@ -436,28 +426,23 @@ Device (SIO1)
 				Return(NONE)
 			}
 
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IOA._MIN, IOLO)
-			CreateByteField(RSRC, 0x03, IOHI) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IOA._MAX, IORL)
-			CreateByteField(RSRC, 0x05, IORH) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IRA._INT, IRQL)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IOA._MIN, IOMN)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IOA._MAX, IOMX)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR3._CRS._IRA._INT, IRQ)
 
-			Store (READ(0, 0x1b, 0xff), Local0)
-			And (Local0, 0xc0, Local1)
-			ShiftRight(Local1, 0x06, Local1)
+			/* I/O Base */
+			Store (READ(0, 0x1b, 0xfe), Local0)
 			ShiftLeft(Local0, 0x02, Local0)
-			Store(Local0, IOLO)
-			Store(Local1, IOHI)
-			Store(IOLO, IORL)
-			Store(IOHI, IORH)
+			Store(Local0, IOMN)
+			Store(Local0, IOMX)
 
 			/* Interrupt */
 			Store(READ(0, 0x1d, 0xf0), Local0)
 			ShiftRight(Local0, 4, Local0)
-			ShiftLeft(1, Local0, IRQL)
+			ShiftLeft(1, Local0, IRQ)
 			Return(RSRC)
 		}
 
@@ -588,28 +573,23 @@ Device (SIO1)
 				Return(NONE)
 			}
 
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IOA._MIN, IOLO)
-			CreateByteField(RSRC, 0x03, IOHI) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IOA._MAX, IORL)
-			CreateByteField(RSRC, 0x05, IORH) // Why?
-			CreateByteField(RSRC,
-				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IRA._INT, IRQL)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IOA._MIN, IOMN)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IOA._MAX, IOMX)
+			CreateWordField(RSRC,
+				\_SB.PCI0.LPCB.SIO1.UAR4._CRS._IRA._INT, IRQ)
 
-			Store (READ(0, 0x1c, 0xff), Local0)
-			And (Local0, 0xc0, Local1)
-			ShiftRight(Local1, 0x06, Local1)
+			/* I/O Base */
+			Store (READ(0, 0x1c, 0xfe), Local0)
 			ShiftLeft(Local0, 0x02, Local0)
-			Store(Local0, IOLO)
-			Store(Local1, IOHI)
-			Store(IOLO, IORL)
-			Store(IOHI, IORH)
+			Store(Local0, IOMN)
+			Store(Local0, IOMX)
 
 			/* Interrupt */
 			Store(READ(0, 0x1d, 0xf0), Local0)
 			ShiftRight(Local0, 4, Local0)
-			ShiftLeft(1, Local0, IRQL)
+			ShiftLeft(1, Local0, IRQ)
 			Return(RSRC)
 		}
 



More information about the coreboot-gerrit mailing list