/* SPDX-License-Identifier: GPL-2.0-only */ /* Intel 6/7 Series PCH PCIe support */ // PCI Express Ports Method (IRQM, 1, Serialized) { /* Interrupt Map INTA->INTA, INTB->INTB, INTC->INTC, INTD->INTD */ Name (IQAA, Package() { Package() { 0x0000ffff, 0, 0, 16 }, Package() { 0x0000ffff, 1, 0, 17 }, Package() { 0x0000ffff, 2, 0, 18 }, Package() { 0x0000ffff, 3, 0, 19 } }) Name (IQAP, 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->INTC, INTC->INTD, INTD->INTA */ Name (IQBA, Package() { Package() { 0x0000ffff, 0, 0, 17 }, Package() { 0x0000ffff, 1, 0, 18 }, Package() { 0x0000ffff, 2, 0, 19 }, Package() { 0x0000ffff, 3, 0, 16 } }) Name (IQBP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKB, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKC, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKD, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKA, 0 } }) /* Interrupt Map INTA->INTC, INTB->INTD, INTC->INTA, INTD->INTB */ Name (IQCA, Package() { Package() { 0x0000ffff, 0, 0, 18 }, Package() { 0x0000ffff, 1, 0, 19 }, Package() { 0x0000ffff, 2, 0, 16 }, Package() { 0x0000ffff, 3, 0, 17 } }) Name (IQCP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKC, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKD, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKA, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKB, 0 } }) /* Interrupt Map INTA->INTD, INTB->INTA, INTC->INTB, INTD->INTC */ Name (IQDA, Package() { Package() { 0x0000ffff, 0, 0, 19 }, Package() { 0x0000ffff, 1, 0, 16 }, Package() { 0x0000ffff, 2, 0, 17 }, Package() { 0x0000ffff, 3, 0, 18 } }) Name (IQDP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKD, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKA, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKB, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKC, 0 } }) /* Interrupt Map INTA->INTE, INTB->INTF, INTC->INTG, INTD->INTH */ Name (IQEA, Package() { Package() { 0x0000ffff, 0, 0, 20 }, Package() { 0x0000ffff, 1, 0, 21 }, Package() { 0x0000ffff, 2, 0, 22 }, Package() { 0x0000ffff, 3, 0, 23 } }) Name (IQEP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKE, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKF, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKG, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKH, 0 } }) /* Interrupt Map INTA->INTF, INTB->INTG, INTC->INTH, INTD->INTE */ Name (IQFA, Package() { Package() { 0x0000ffff, 0, 0, 21 }, Package() { 0x0000ffff, 1, 0, 22 }, Package() { 0x0000ffff, 2, 0, 23 }, Package() { 0x0000ffff, 3, 0, 20 } }) Name (IQFP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKF, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKG, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKH, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKE, 0 } }) /* Interrupt Map INTA->INTG, INTB->INTH, INTC->INTE, INTD->INTF */ Name (IQGA, Package() { Package() { 0x0000ffff, 0, 0, 22 }, Package() { 0x0000ffff, 1, 0, 23 }, Package() { 0x0000ffff, 2, 0, 20 }, Package() { 0x0000ffff, 3, 0, 21 } }) Name (IQGP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKG, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKH, 0 }, Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKE, 0 }, Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKF, 0 } }) /* Interrupt Map INTA->INTH, INTB->INTE, INTC->INTF, INTD->INTG */ Name (IQHA, Package() { Package() { 0x0000ffff, 0, 0, 23 }, Package() { 0x0000ffff, 1, 0, 20 }, Package() { 0x0000ffff, 2, 0, 21 }, Package() { 0x0000ffff, 3, 0, 22 } }) Name (IQHP, Package() { Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKH, 0 }, Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKE, 0 }, 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) { Return (IQAA) } Else { Return (IQAP) } } /* PCIe Root Port 2 */ Case (Package() { 10 }) { If (PICM) { Return (IQBA) } Else { Return (IQBP) } } /* PCIe Root Port 3 */ Case (Package() { 11 }) { If (PICM) { Return (IQCA) } Else { Return (IQCP) } } /* PCIe Root Port 4 */ Case (Package() { 12 }) { If (PICM) { Return (IQDA) } Else { Return (IQDP) } } /* PCIe Root Port 5 */ Case (Package() { 14 }) { If (PICM) { Return (IQEA) } Else { Return (IQEP) } } /* PCIe Root Port 6 */ Case (Package() { 15 }) { If (PICM) { Return (IQFA) } Else { Return (IQFP) } } /* PCIe Root Port 7 */ Case (Package() { 16 }) { If (PICM) { Return (IQGA) } Else { Return (IQGP) } } /* PCIe Root Port 8 */ Case (Package() { 17 }) { If (PICM) { Return (IQHA) } Else { Return (IQHP) } } /* 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) } Else { Return (IQDP) } } } } Device (RP01) { Name (_ADR, 0x00090000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP02) { Name (_ADR, 0x000A0000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP03) { Name (_ADR, 0x000B0000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP04) { Name (_ADR, 0x000C0000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP05) { Name (_ADR, 0x000E0000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP06) { Name (_ADR, 0x000F0000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP07) { Name (_ADR, 0x00100000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } } Device (RP08) { Name (_ADR, 0x00110000) #include "pcie_port.asl" Method (_PRT) { Return (IRQM (RPPN)) } }