Index: head/sys/arm64/arm64/gic_v3_its.c =================================================================== --- head/sys/arm64/arm64/gic_v3_its.c +++ head/sys/arm64/arm64/gic_v3_its.c @@ -59,6 +59,8 @@ #include "gic_v3_reg.h" #include "gic_v3_var.h" +#define GIC_V3_ITS_QUIRK_THUNDERX_PEM_BUS_OFFSET 144 + #include "pic_if.h" /* Device and PIC methods */ @@ -1475,8 +1477,8 @@ bsf = PCI_RID(pci_get_bus(pci_dev), pci_get_slot(pci_dev), pci_get_function(pci_dev)); - /* ECAM is on bus=0 */ - if (bus == 0) { + /* Check if accessing internal PCIe (low bus numbers) */ + if (bus < GIC_V3_ITS_QUIRK_THUNDERX_PEM_BUS_OFFSET) { return ((pci_get_domain(pci_dev) << PCI_RID_DOMAIN_SHIFT) | bsf); /* PEM otherwise */