diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2023-06-07 15:27:18 +0200 |
---|---|---|
committer | Martin L Roth <gaumless@gmail.com> | 2023-06-14 21:11:12 +0000 |
commit | ce179729f0195795f099fc38934e0605c41df262 (patch) | |
tree | 4f4a7c7767337bd0cf72b71f69907d567826a980 /src/soc | |
parent | 0ad766c0d5b814d29866311278e7427d44925198 (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>
Diffstat (limited to 'src/soc')
-rw-r--r-- | src/soc/amd/cezanne/root_complex.c | 3 | ||||
-rw-r--r-- | src/soc/amd/common/block/acpi/ivrs.c | 3 | ||||
-rw-r--r-- | src/soc/amd/glinda/root_complex.c | 3 | ||||
-rw-r--r-- | src/soc/amd/mendocino/root_complex.c | 3 | ||||
-rw-r--r-- | src/soc/amd/phoenix/root_complex.c | 3 | ||||
-rw-r--r-- | src/soc/amd/picasso/root_complex.c | 3 |
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; |