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>
This commit is contained in:
Stephen Douthit 2019-08-05 11:53:35 -04:00 committed by Patrick Georgi
parent a51f490870
commit ecb0e409a4
3 changed files with 78 additions and 0 deletions

View File

@ -167,4 +167,9 @@ Device (RCEC) {
// Virtual root port 2 // Virtual root port 2
Device (VRP2) { Device (VRP2) {
Name (_ADR, 0x00060000) Name (_ADR, 0x00060000)
Method (_PRT)
{
Return (IRQM (6))
}
} }

View File

@ -118,7 +118,52 @@ Method (IRQM, 1, Serialized) {
Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKF, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKF, 0 },
Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKG, 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)) { Switch (ToInteger (Arg0)) {
/* Virtual Root Port 2 - QAT */
Case (Package() { 6 }) {
If (PICM) {
Return (IQIA)
} Else {
Return (IQIP)
}
}
/* PCIe Root Port 1 */ /* PCIe Root Port 1 */
Case (Package() { 9 }) { Case (Package() { 9 }) {
If (PICM) { 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 { Default {
If (PICM) { If (PICM) {
Return (IQDA) Return (IQDA)

View File

@ -62,11 +62,21 @@ Scope(\)
// Virtual root port 0 // Virtual root port 0
Device (VRP0) { Device (VRP0) {
Name (_ADR, 0x00160000) Name (_ADR, 0x00160000)
Method (_PRT)
{
Return (IRQM (22))
}
} }
// Virtual root port 1 // Virtual root port 1
Device (VRP1) { Device (VRP1) {
Name (_ADR, 0x00170000) Name (_ADR, 0x00170000)
Method (_PRT)
{
Return (IRQM (23))
}
} }
// ME HECI // ME HECI