aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2023-06-07 15:27:18 +0200
committerMartin L Roth <gaumless@gmail.com>2023-06-14 21:11:12 +0000
commitce179729f0195795f099fc38934e0605c41df262 (patch)
tree4f4a7c7767337bd0cf72b71f69907d567826a980
parent0ad766c0d5b814d29866311278e7427d44925198 (diff)
soc/amd/acpi/ivrs: Use specific IOMMU resource index on all SOC
By adding all DXIO IOAPIC with the same resource index, the IVRS code can always pick that resource which simplifies the code. Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Change-Id: I10345e2337dcb709c2c1a8e57a1b7dd9c04adb9e Reviewed-on: https://review.coreboot.org/c/coreboot/+/75710 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com> Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
-rw-r--r--src/soc/amd/cezanne/root_complex.c3
-rw-r--r--src/soc/amd/common/block/acpi/ivrs.c3
-rw-r--r--src/soc/amd/glinda/root_complex.c3
-rw-r--r--src/soc/amd/mendocino/root_complex.c3
-rw-r--r--src/soc/amd/phoenix/root_complex.c3
-rw-r--r--src/soc/amd/picasso/root_complex.c3
6 files changed, 10 insertions, 8 deletions
diff --git a/src/soc/amd/cezanne/root_complex.c b/src/soc/amd/cezanne/root_complex.c
index bbddfab177..29070f6d4e 100644
--- a/src/soc/amd/cezanne/root_complex.c
+++ b/src/soc/amd/cezanne/root_complex.c
@@ -3,6 +3,7 @@
#include <acpi/acpigen.h>
#include <amdblocks/acpi.h>
#include <amdblocks/alib.h>
+#include <amdblocks/data_fabric.h>
#include <amdblocks/ioapic.h>
#include <amdblocks/memmap.h>
#include <arch/ioapic.h>
@@ -145,7 +146,7 @@ static void read_resources(struct device *dev)
mmconf_resource(dev, idx++);
/* GNB IOAPIC resource */
- gnb_apic = new_resource(dev, idx++);
+ gnb_apic = new_resource(dev, IOMMU_IOAPIC_IDX);
gnb_apic->base = GNB_IO_APIC_ADDR;
gnb_apic->size = 0x00001000;
gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
diff --git a/src/soc/amd/common/block/acpi/ivrs.c b/src/soc/amd/common/block/acpi/ivrs.c
index 3e58a61630..1629ff914f 100644
--- a/src/soc/amd/common/block/acpi/ivrs.c
+++ b/src/soc/amd/common/block/acpi/ivrs.c
@@ -206,9 +206,6 @@ static unsigned long acpi_ivhd_misc(unsigned long current, struct device *dev)
/* Describe IOAPIC associated with the IOMMU */
current = _acpi_fill_ivrs_ioapic(current, (u8 *)(uintptr_t)res->base,
PCI_DEVFN(0, 1) | (dev->link_list->secondary << 8), 0);
- } else if (dev->link_list->secondary == 0) {
- current = _acpi_fill_ivrs_ioapic(current, (u8 *)GNB_IO_APIC_ADDR,
- PCI_DEVFN(0, 1), 0);
}
/* If the domain has secondary bus as zero then associate HPET & FCH IOAPIC */
diff --git a/src/soc/amd/glinda/root_complex.c b/src/soc/amd/glinda/root_complex.c
index 64d90ee77e..b18e948abe 100644
--- a/src/soc/amd/glinda/root_complex.c
+++ b/src/soc/amd/glinda/root_complex.c
@@ -5,6 +5,7 @@
#include <acpi/acpigen.h>
#include <amdblocks/acpi.h>
#include <amdblocks/alib.h>
+#include <amdblocks/data_fabric.h>
#include <amdblocks/ioapic.h>
#include <amdblocks/memmap.h>
#include <arch/ioapic.h>
@@ -160,7 +161,7 @@ static void read_resources(struct device *dev)
mmconf_resource(dev, idx++);
/* GNB IOAPIC resource */
- gnb_apic = new_resource(dev, idx++);
+ gnb_apic = new_resource(dev, IOMMU_IOAPIC_IDX);
gnb_apic->base = GNB_IO_APIC_ADDR;
gnb_apic->size = 0x00001000;
gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
diff --git a/src/soc/amd/mendocino/root_complex.c b/src/soc/amd/mendocino/root_complex.c
index 6f935020a3..7a58f015e6 100644
--- a/src/soc/amd/mendocino/root_complex.c
+++ b/src/soc/amd/mendocino/root_complex.c
@@ -5,6 +5,7 @@
#include <acpi/acpigen.h>
#include <amdblocks/acpi.h>
#include <amdblocks/alib.h>
+#include <amdblocks/data_fabric.h>
#include <amdblocks/ioapic.h>
#include <amdblocks/memmap.h>
#include <arch/ioapic.h>
@@ -188,7 +189,7 @@ static void read_resources(struct device *dev)
mmconf_resource(dev, idx++);
/* GNB IOAPIC resource */
- gnb_apic = new_resource(dev, idx++);
+ gnb_apic = new_resource(dev, IOMMU_IOAPIC_IDX);
gnb_apic->base = GNB_IO_APIC_ADDR;
gnb_apic->size = 0x00001000;
gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
diff --git a/src/soc/amd/phoenix/root_complex.c b/src/soc/amd/phoenix/root_complex.c
index 64f9ca4576..3110ea3ee5 100644
--- a/src/soc/amd/phoenix/root_complex.c
+++ b/src/soc/amd/phoenix/root_complex.c
@@ -5,6 +5,7 @@
#include <acpi/acpigen.h>
#include <amdblocks/acpi.h>
#include <amdblocks/alib.h>
+#include <amdblocks/data_fabric.h>
#include <amdblocks/ioapic.h>
#include <amdblocks/memmap.h>
#include <arch/ioapic.h>
@@ -160,7 +161,7 @@ static void read_resources(struct device *dev)
mmconf_resource(dev, idx++);
/* GNB IOAPIC resource */
- gnb_apic = new_resource(dev, idx++);
+ gnb_apic = new_resource(dev, IOMMU_IOAPIC_IDX);
gnb_apic->base = GNB_IO_APIC_ADDR;
gnb_apic->size = 0x00001000;
gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
diff --git a/src/soc/amd/picasso/root_complex.c b/src/soc/amd/picasso/root_complex.c
index e61208ff22..cd10fdb762 100644
--- a/src/soc/amd/picasso/root_complex.c
+++ b/src/soc/amd/picasso/root_complex.c
@@ -3,6 +3,7 @@
#include <acpi/acpigen.h>
#include <amdblocks/acpi.h>
#include <amdblocks/alib.h>
+#include <amdblocks/data_fabric.h>
#include <amdblocks/memmap.h>
#include <amdblocks/ioapic.h>
#include <arch/ioapic.h>
@@ -143,7 +144,7 @@ static void read_resources(struct device *dev)
mmconf_resource(dev, idx++);
/* GNB IOAPIC resource */
- gnb_apic = new_resource(dev, idx++);
+ gnb_apic = new_resource(dev, IOMMU_IOAPIC_IDX);
gnb_apic->base = GNB_IO_APIC_ADDR;
gnb_apic->size = 0x00001000;
gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;