summaryrefslogtreecommitdiff
path: root/src/soc/intel/denverton_ns
diff options
context:
space:
mode:
authorStephen Douthit <stephend@silicom-usa.com>2019-08-05 11:53:35 -0400
committerPatrick Georgi <pgeorgi@google.com>2020-03-10 20:45:40 +0000
commitecb0e409a47b75778d1045d5c194f83b0a21eba6 (patch)
tree2ed825b13a235889ef9cc79a526fe152a235c778 /src/soc/intel/denverton_ns
parenta51f4908704bee5e83f911eaf2fc241795b060ac (diff)
downloadcoreboot-ecb0e409a47b75778d1045d5c194f83b0a21eba6.tar.xz
soc/intel/dnv: Add ACPI _PRT methods for virtual root ports
This eliminates Linux kernel warnings that look like: pcieport 0000:00:17.0: can't derive routing for PCI INT B ixgbe 0000:07:00.1: PCI INT B: no GSI - using ISA IRQ 10 Change-Id: I2029e7a8252b9e48c1df457d8da5adce7d1ac21d Signed-off-by: Stephen Douthit <stephend@silicom-usa.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34713 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/soc/intel/denverton_ns')
-rw-r--r--src/soc/intel/denverton_ns/acpi/northcluster.asl5
-rw-r--r--src/soc/intel/denverton_ns/acpi/pcie.asl63
-rw-r--r--src/soc/intel/denverton_ns/acpi/southcluster.asl10
3 files changed, 78 insertions, 0 deletions
diff --git a/src/soc/intel/denverton_ns/acpi/northcluster.asl b/src/soc/intel/denverton_ns/acpi/northcluster.asl
index 58d63c26cf..b102f2fdfe 100644
--- a/src/soc/intel/denverton_ns/acpi/northcluster.asl
+++ b/src/soc/intel/denverton_ns/acpi/northcluster.asl
@@ -167,4 +167,9 @@ Device (RCEC) {
// Virtual root port 2
Device (VRP2) {
Name (_ADR, 0x00060000)
+
+ Method (_PRT)
+ {
+ Return (IRQM (6))
+ }
}
diff --git a/src/soc/intel/denverton_ns/acpi/pcie.asl b/src/soc/intel/denverton_ns/acpi/pcie.asl
index c9bbd3fa80..bc47b77f09 100644
--- a/src/soc/intel/denverton_ns/acpi/pcie.asl
+++ b/src/soc/intel/denverton_ns/acpi/pcie.asl
@@ -118,7 +118,52 @@ Method (IRQM, 1, Serialized) {
Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKF, 0 },
Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKG, 0 } })
+ /* Interrupt Map INTA->INTC, INTB->INTB, INTC->INTC, INTD->INTD */
+ Name (IQIA, Package() {
+ Package() { 0x0000ffff, 0, 0, 18 },
+ Package() { 0x0000ffff, 1, 0, 17 },
+ Package() { 0x0000ffff, 2, 0, 18 },
+ Package() { 0x0000ffff, 3, 0, 19 } })
+ Name (IQIP, Package() {
+ Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKC, 0 },
+ Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKB, 0 },
+ Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKC, 0 },
+ Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKD, 0 } })
+
+ /* Interrupt Map INTA->INTA, INTB->INTB, INTC->INTC, INTD->INTD */
+ Name (IQJA, Package() {
+ Package() { 0x0000ffff, 0, 0, 23 },
+ Package() { 0x0000ffff, 1, 0, 20 },
+ Package() { 0x0000ffff, 2, 0, 21 },
+ Package() { 0x0000ffff, 3, 0, 22 } })
+ Name (IQJP, Package() {
+ Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKA, 0 },
+ Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKB, 0 },
+ Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKC, 0 },
+ Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKD, 0 } })
+
+ /* Interrupt Map INTA->INTB, INTB->INTB, INTC->INTC, INTD->INTD */
+ Name (IQKA, Package() {
+ Package() { 0x0000ffff, 0, 0, 17 },
+ Package() { 0x0000ffff, 1, 0, 17 },
+ Package() { 0x0000ffff, 2, 0, 18 },
+ Package() { 0x0000ffff, 3, 0, 19 } })
+ Name (IQKP, Package() {
+ Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKB, 0 },
+ Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKB, 0 },
+ Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKC, 0 },
+ Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKD, 0 } })
+
Switch (ToInteger (Arg0)) {
+ /* Virtual Root Port 2 - QAT */
+ Case (Package() { 6 }) {
+ If (PICM) {
+ Return (IQIA)
+ } Else {
+ Return (IQIP)
+ }
+ }
+
/* PCIe Root Port 1 */
Case (Package() { 9 }) {
If (PICM) {
@@ -191,6 +236,24 @@ Method (IRQM, 1, Serialized) {
}
}
+ /* Virtual Root Port 0 - LAN 0 */
+ Case (Package() { 22 }) {
+ If (PICM) {
+ Return (IQJA)
+ } Else {
+ Return (IQJP)
+ }
+ }
+
+ /* Virtual Root Port 1 - LAN 1 */
+ Case (Package() { 23 }) {
+ If (PICM) {
+ Return (IQKA)
+ } Else {
+ Return (IQKP)
+ }
+ }
+
Default {
If (PICM) {
Return (IQDA)
diff --git a/src/soc/intel/denverton_ns/acpi/southcluster.asl b/src/soc/intel/denverton_ns/acpi/southcluster.asl
index bcc8a5ca31..674f0435c8 100644
--- a/src/soc/intel/denverton_ns/acpi/southcluster.asl
+++ b/src/soc/intel/denverton_ns/acpi/southcluster.asl
@@ -62,11 +62,21 @@ Scope(\)
// Virtual root port 0
Device (VRP0) {
Name (_ADR, 0x00160000)
+
+ Method (_PRT)
+ {
+ Return (IRQM (22))
+ }
}
// Virtual root port 1
Device (VRP1) {
Name (_ADR, 0x00170000)
+
+ Method (_PRT)
+ {
+ Return (IRQM (23))
+ }
}
// ME HECI