diff options
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/intel/skylake/acpi/irqlinks.asl | 337 | ||||
-rw-r--r-- | src/soc/intel/skylake/acpi/itss.asl | 96 | ||||
-rw-r--r-- | 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 1f6e62352c..b7a78f0b18 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 8ba9513abd..0000000000 --- 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 581efa082b..c72a704fc4 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" |