soc/intel/tigerlake: Add IRQ mapping for PEG PCI-E ports

ACPI _PRT method was missing from PEG (SoC PCI-E) links, resulting in OS
complaining about interrupt routing.

'pcieport 0000:00:06.0: can't derive routing for PCI INT A'
'nvme 0000:04:00.0: PCI INT A: not connected'
'Interrupt: pin A routed to IRQ -2147483648'

TEST=Boot Linux and Windows 10 on TGL-H platform with PEG0/PEG1
populated with PCI-E devices - Radeon RX 7800XT and Kingston KC3000 NVME
SSD. Check logs and stability while running 3D application and disk
benchmark at the same time.

Change-Id: If102522efa1a67b362b14d859d9e27a37bad85a4
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80848
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
This commit is contained in:
Alicja Michalska 2024-03-01 01:44:30 +01:00 committed by Felix Singer
parent 07cfe5392a
commit 5015a35f48

View File

@ -115,22 +115,70 @@ Method (IRQM, 1, Serialized) {
Device (PEG0)
{
Name (_ADR, 0x00060000)
OperationRegion (RPCS, PCI_Config, 0x4c, 4)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
, 24,
RPPN, 8, /* Root Port Number */
}
Method (_PRT)
{
Return (IRQM (RPPN))
}
}
#if CONFIG(SOC_INTEL_TIGERLAKE_PCH_H)
Device (PEG1)
{
Name (_ADR, 0x00010000)
OperationRegion (RPCS, PCI_Config, 0x4c, 4)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
, 24,
RPPN, 8, /* Root Port Number */
}
Method (_PRT)
{
Return (IRQM (RPPN))
}
}
Device (PEG2)
{
Name (_ADR, 0x00010001)
OperationRegion (RPCS, PCI_Config, 0x4c, 4)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
, 24,
RPPN, 8, /* Root Port Number */
}
Method (_PRT)
{
Return (IRQM (RPPN))
}
}
Device (PEG3)
{
Name (_ADR, 0x00010002)
OperationRegion (RPCS, PCI_Config, 0x4c, 4)
Field (RPCS, AnyAcc, NoLock, Preserve)
{
, 24,
RPPN, 8, /* Root Port Number */
}
Method (_PRT)
{
Return (IRQM (RPPN))
}
}
#endif