[coreboot-gerrit] New patch to review for coreboot: skylake: ACPI: Remove itss.asl and cleanup irqlinks.asl

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Mon Sep 7 18:42:05 CET 2015


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

-gerrit

commit ded08000f5e8aa68491ef019193c7f43d726d51b
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Thu Aug 27 16:48:11 2015 -0700

    skylake: ACPI: Remove itss.asl and cleanup irqlinks.asl
    
    Move the itss.asl code that was exporting PIRQ routing
    control registers into irqlinks.asl and use the PCR access
    methods to find the appropriate address.  At the same time
    clean up the code in irqlinks.asl to follow formatting rules.
    
    Also now that the GPIO code in itss.asl is unused the file
    can be removed.
    
    BUG=chrome-os-partner:44622
    BRANCH=none
    TEST=emerge-glados coreboot
    
    Change-Id: I1af7d730542fd0e79b9f3db9f0796e7c701c59e6
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 39a96063d01d00ab768db1c723f78b5af9ed6513
    Original-Change-Id: Iafa03c276cb276ec8c00c24ed2dba48d0dc9612b
    Original-Signed-off-by: Duncan Laurie <dlaurie at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/295907
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
---
 src/soc/intel/skylake/acpi/irqlinks.asl | 337 +++++++++++++-------------------
 src/soc/intel/skylake/acpi/itss.asl     |  96 ---------
 src/soc/intel/skylake/acpi/pch.asl      |   1 -
 3 files changed, 137 insertions(+), 297 deletions(-)

diff --git a/src/soc/intel/skylake/acpi/irqlinks.asl b/src/soc/intel/skylake/acpi/irqlinks.asl
index 1f6e623..b7a78f0 100644
--- a/src/soc/intel/skylake/acpi/irqlinks.asl
+++ b/src/soc/intel/skylake/acpi/irqlinks.asl
@@ -19,475 +19,412 @@
  * Foundation, Inc.
  */
 
+/* PIRQ routing control is in PCR ITSS region */
+OperationRegion (ITSS, SystemMemory,
+		 Add (PCRB (PID_ITSS), R_PCH_PCR_ITSS_PIRQA_ROUT), 8)
+Field (ITSS, ByteAcc, NoLock, Preserve)
+{
+	PIRA, 8,	/* PIRQA Routing Control */
+	PIRB, 8,	/* PIRQB Routing Control */
+	PIRC, 8,	/* PIRQC Routing Control */
+	PIRD, 8,	/* PIRQD Routing Control */
+	PIRE, 8,	/* PIRQE Routing Control */
+	PIRF, 8,	/* PIRQF Routing Control */
+	PIRG, 8,	/* PIRQG Routing Control */
+	PIRH, 8,	/* PIRQH Routing Control */
+}
+
+Name (IREN, 0x80)	/* Interrupt Routing Enable */
+Name (IREM, 0x0f)	/* Interrupt Routing Mask */
+
 Device (LNKA)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 1)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PARC, 0x80, \_SB.PARC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLA, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
 		CreateWordField (RTLA, 1, IRQ0)
-
-		// Clear the WordField
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTA
-		ShiftLeft (1, And (\_SB.PARC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRA, ^^IREM), IRQ0)
 
 		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PARC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRA)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PARC, 0x80)) {
+		If (And (^^PIRA, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRA, ^^IREN, ^^PIRA)
+	}
 }
 
 Device (LNKB)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 2)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PBRC, 0x80, \_SB.PBRC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLB, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLB, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTB
-		ShiftLeft (1, And (\_SB.PBRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRB, ^^IREM), IRQ0)
 
-		Return (RTLB)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PBRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRB)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PBRC, 0x80)) {
+		If (And (^^PIRB, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRB, ^^IREN, ^^PIRB)
+	}
 }
 
 Device (LNKC)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 3)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PCRC, 0x80, \_SB.PCRC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLC, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLC, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTC
-		ShiftLeft (1, And (\_SB.PCRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRC, ^^IREM), IRQ0)
 
-		Return (RTLC)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PCRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRC)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PCRC, 0x80)) {
+		If (And (^^PIRC, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRC, ^^IREN, ^^PIRC)
+	}
 }
 
 Device (LNKD)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 4)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PDRC, 0x80, \_SB.PDRC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLD, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLD, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTD
-		ShiftLeft (1, And (\_SB.PDRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRD, ^^IREM), IRQ0)
 
-		Return (RTLD)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PDRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRD)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PDRC, 0x80)) {
+		If (And (^^PIRD, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRD, ^^IREN, ^^PIRD)
+	}
 }
 
 Device (LNKE)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 5)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PERC, 0x80, \_SB.PERC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLE, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLE, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTE
-		ShiftLeft (1, And (\_SB.PERC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRE, ^^IREM), IRQ0)
 
-		Return (RTLE)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PERC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRE)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PERC, 0x80)) {
+		If (And (^^PIRE, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRE, ^^IREN, ^^PIRE)
+	}
 }
 
 Device (LNKF)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 6)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PFRC, 0x80, \_SB.PFRC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLF, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLF, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTF
-		ShiftLeft (1, And (\_SB.PFRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRF, ^^IREM), IRQ0)
 
-		Return (RTLF)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PFRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRF)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PFRC, 0x80)) {
+		If (And (^^PIRF, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
+
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRF, ^^IREN, ^^PIRF)
+	}
 }
 
 Device (LNKG)
 {
-	Name (_HID, EISAID("PNP0C0F"))
+	Name (_HID, EISAID ("PNP0C0F"))
 	Name (_UID, 7)
 
-	// Disable method
-	Method (_DIS, 0, Serialized)
-	{
-		Or (\_SB.PGRC, 0x80, \_SB.PGRC)
-	}
-
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLG, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLG, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTG
-		ShiftLeft (1, And (\_SB.PGRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRG, ^^IREM), IRQ0)
 
-		Return (RTLG)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PGRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRG)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PGRC, 0x80)) {
+		If (And (^^PIRG, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
-}
 
-Device (LNKH)
-{
-	Name (_HID, EISAID("PNP0C0F"))
-	Name (_UID, 8)
-
-	// Disable method
 	Method (_DIS, 0, Serialized)
 	{
-		Or (\_SB.PHRC, 0x80, \_SB.PHRC)
+		Or (^^PIRG, ^^IREN, ^^PIRG)
 	}
+}
 
-	// Possible Resource Settings for this Link
-	Name (_PRS, ResourceTemplate()
+Device (LNKH)
+{
+	Name (_HID, EISAID ("PNP0C0F"))
+	Name (_UID, 1)
+
+	Name (_PRS, ResourceTemplate ()
 	{
 		IRQ (Level, ActiveLow, Shared)
 			{ 3, 4, 5, 6, 10, 12, 14, 15 }
 	})
 
-	// Current Resource Settings for this link
 	Method (_CRS, 0, Serialized)
 	{
-		Name (RTLH, ResourceTemplate()
+		Name (RTLA, ResourceTemplate ()
 		{
 			IRQ (Level, ActiveLow, Shared) {}
 		})
-		CreateWordField (RTLH, 1, IRQ0)
-
-		// Clear the WordField
+		CreateWordField (RTLA, 1, IRQ0)
 		Store (Zero, IRQ0)
 
-		// Set the bit from PRTH
-		ShiftLeft (1, And (\_SB.PHRC, 0x0f), IRQ0)
+		/* Set the bit from PIRQ Routing Register */
+		ShiftLeft (1, And (^^PIRH, ^^IREM), IRQ0)
 
-		Return (RTLH)
+		Return (RTLA)
 	}
 
-	// Set Resource Setting for this IRQ link
 	Method (_SRS, 1, Serialized)
 	{
 		CreateWordField (Arg0, 1, IRQ0)
-
-		// Which bit is set?
 		FindSetRightBit (IRQ0, Local0)
-
-		Decrement(Local0)
-		Store (Local0, \_SB.PHRC)
+		Decrement (Local0)
+		Store (Local0, ^^PIRH)
 	}
 
-	// Status
 	Method (_STA, 0, Serialized)
 	{
-		If(And (\_SB.PHRC, 0x80)) {
+		If (And (^^PIRH, ^^IREN)) {
 			Return (0x9)
 		} Else {
 			Return (0xb)
 		}
 	}
-}
 
+	Method (_DIS, 0, Serialized)
+	{
+		Or (^^PIRH, ^^IREN, ^^PIRH)
+	}
+}
diff --git a/src/soc/intel/skylake/acpi/itss.asl b/src/soc/intel/skylake/acpi/itss.asl
deleted file mode 100644
index 8ba9513..0000000
--- a/src/soc/intel/skylake/acpi/itss.asl
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * This file is part of the coreboot project.
- * Copyright (C) 2015 Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-/* ITSS */
-/* Define the needed ITSS registers used by ASL on Interrupt */
-
-Scope (\_SB)
-{
-	OperationRegion (ITSS, SystemMemory, 0xfdc43100, 0x8)
-	Field (ITSS, ByteAcc, NoLock, Preserve)
-	{
-		PARC, 8,
-		PBRC, 8,
-		PCRC, 8,
-		PDRC, 8,
-		PERC, 8,
-		PFRC, 8,
-		PGRC, 8,
-		PHRC, 8,
-	}
-
-	/*
-	 * Pin# = group_pad# + group# * 24.
-	 * For instance, GPP_A_6 would be pin#6,
-	 * 	GPP_D_23 would be 23+(3*24), pin#95.
-	 */
-	Name (GPPG, Package (0x02)
-	{
-		Package (0x08)
-		{
-			0x18,
-			0x18,
-			0x18,
-			0x18,
-			0x18,
-			0x18,
-			0x08,
-			0x0C
-		},
-
-		Package (0x0A)
-		{
-			0x18,
-			0x18,
-			0x18,
-			0x18,
-			0x0D,
-			0x18,
-			0x18,
-			0x18,
-			0x0B,
-			0x0C
-		}
-	})
-
-	Method (GNMB, 1, Serialized)
-	{
-		Return (And (Arg0, 0xFFFF))
-	}
-
-	Method (GGRP, 1, Serialized)
-	{
-		ShiftRight (And (Arg0, 0x00FF0000), 0x10, Local0)
-		Return (Local0)
-	}
-
-	/* Convert GPIO PAD name to GPIO number */
-	Method (INUM, 1, NotSerialized)
-	{
-		Store (One, Local0)
-		Store (GNMB (Arg0), Local1)
-		Store (GGRP (Arg0), Local2)
-		Store (Zero, Local3)
-
-		While (LLess (Local3, Local2))
-		{
-			Add (DerefOf (Index (DerefOf (Index
-					(GPPG, Local0)), Local3)),
-					Local1, Local1)
-			Increment (Local3)
-		}
-
-		Return (Add (0x18, Mod (Local1, 0x60)))
-	}
-}
diff --git a/src/soc/intel/skylake/acpi/pch.asl b/src/soc/intel/skylake/acpi/pch.asl
index 581efa0..c72a704 100644
--- a/src/soc/intel/skylake/acpi/pch.asl
+++ b/src/soc/intel/skylake/acpi/pch.asl
@@ -47,7 +47,6 @@
 #include "smbus.asl"
 
 
-#include "itss.asl"
 /* USB XHCI 0:14.0 */
 #include "xhci.asl"
 



More information about the coreboot-gerrit mailing list