diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2021-06-16 11:00:40 +0300 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-11-17 23:31:59 +0000 |
commit | 2e65e9cb69de5a0e8bfae1ab79016af8c5c5316f (patch) | |
tree | cf52847a6328e7eb3a72f04926dbb793d2ab8b81 /src/soc/amd | |
parent | 87d4f114a24d713c7ce965a52b83974f7b089557 (diff) |
soc/amd: Use ioapic helper functions
Calling setup_ioapic() was only correct for the
IOAPIC routing GSI 0..15 that mimic legacy PIC IRQs.
Change-Id: Ifdacc61b72f461ec6bea334fa06651c09a9695d6
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55571
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/soc/amd')
-rw-r--r-- | src/soc/amd/cezanne/acpi.c | 7 | ||||
-rw-r--r-- | src/soc/amd/cezanne/root_complex.c | 2 | ||||
-rw-r--r-- | src/soc/amd/common/block/lpc/lpc.c | 2 | ||||
-rw-r--r-- | src/soc/amd/glinda/acpi.c | 7 | ||||
-rw-r--r-- | src/soc/amd/glinda/root_complex.c | 2 | ||||
-rw-r--r-- | src/soc/amd/mendocino/acpi.c | 7 | ||||
-rw-r--r-- | src/soc/amd/mendocino/root_complex.c | 2 | ||||
-rw-r--r-- | src/soc/amd/morgana/acpi.c | 7 | ||||
-rw-r--r-- | src/soc/amd/morgana/root_complex.c | 2 | ||||
-rw-r--r-- | src/soc/amd/picasso/acpi.c | 7 | ||||
-rw-r--r-- | src/soc/amd/picasso/root_complex.c | 2 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/acpi.c | 6 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/northbridge.c | 2 |
13 files changed, 24 insertions, 31 deletions
diff --git a/src/soc/amd/cezanne/acpi.c b/src/soc/amd/cezanne/acpi.c index 934547d01c..189e84e86e 100644 --- a/src/soc/amd/cezanne/acpi.c +++ b/src/soc/amd/cezanne/acpi.c @@ -26,11 +26,10 @@ unsigned long acpi_fill_madt(unsigned long current) /* create all subtables for processors */ current = acpi_create_madt_lapics(current); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, GNB_IO_APIC_ADDR, IO_APIC_INTERRUPTS); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, + GNB_IO_APIC_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/cezanne/root_complex.c b/src/soc/amd/cezanne/root_complex.c index 31c2e1a3d6..81b2b96c6c 100644 --- a/src/soc/amd/cezanne/root_complex.c +++ b/src/soc/amd/cezanne/root_complex.c @@ -172,7 +172,7 @@ static void read_resources(struct device *dev) static void root_complex_init(struct device *dev) { - setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)GNB_IO_APIC_ADDR); } static void acipgen_dptci(void) diff --git a/src/soc/amd/common/block/lpc/lpc.c b/src/soc/amd/common/block/lpc/lpc.c index 26e0c26ed9..5633d8f9de 100644 --- a/src/soc/amd/common/block/lpc/lpc.c +++ b/src/soc/amd/common/block/lpc/lpc.c @@ -38,7 +38,7 @@ static void setup_serirq(void) static void fch_ioapic_init(void) { fch_enable_ioapic_decode(); - setup_ioapic(VIO_APIC_VADDR, FCH_IOAPIC_ID); + register_new_ioapic_gsi0(VIO_APIC_VADDR); } static void lpc_init(struct device *dev) diff --git a/src/soc/amd/glinda/acpi.c b/src/soc/amd/glinda/acpi.c index 5a219cbc66..85430b9f17 100644 --- a/src/soc/amd/glinda/acpi.c +++ b/src/soc/amd/glinda/acpi.c @@ -29,11 +29,10 @@ unsigned long acpi_fill_madt(unsigned long current) /* create all subtables for processors */ current = acpi_create_madt_lapics(current); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, GNB_IO_APIC_ADDR, IO_APIC_INTERRUPTS); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, + GNB_IO_APIC_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/glinda/root_complex.c b/src/soc/amd/glinda/root_complex.c index 04d05994b6..5cc88f1f4e 100644 --- a/src/soc/amd/glinda/root_complex.c +++ b/src/soc/amd/glinda/root_complex.c @@ -187,7 +187,7 @@ static void read_resources(struct device *dev) static void root_complex_init(struct device *dev) { - setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)GNB_IO_APIC_ADDR); } static void acipgen_dptci(void) diff --git a/src/soc/amd/mendocino/acpi.c b/src/soc/amd/mendocino/acpi.c index 779ea4ebb0..b867930c34 100644 --- a/src/soc/amd/mendocino/acpi.c +++ b/src/soc/amd/mendocino/acpi.c @@ -28,11 +28,10 @@ unsigned long acpi_fill_madt(unsigned long current) /* create all subtables for processors */ current = acpi_create_madt_lapics(current); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, GNB_IO_APIC_ADDR, IO_APIC_INTERRUPTS); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, + GNB_IO_APIC_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/mendocino/root_complex.c b/src/soc/amd/mendocino/root_complex.c index abc49cfe05..0d24a25700 100644 --- a/src/soc/amd/mendocino/root_complex.c +++ b/src/soc/amd/mendocino/root_complex.c @@ -187,7 +187,7 @@ static void read_resources(struct device *dev) static void root_complex_init(struct device *dev) { - setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)GNB_IO_APIC_ADDR); } static void acipgen_dptci(void) diff --git a/src/soc/amd/morgana/acpi.c b/src/soc/amd/morgana/acpi.c index 945dc5419d..5eb21ffd56 100644 --- a/src/soc/amd/morgana/acpi.c +++ b/src/soc/amd/morgana/acpi.c @@ -29,11 +29,10 @@ unsigned long acpi_fill_madt(unsigned long current) /* create all subtables for processors */ current = acpi_create_madt_lapics(current); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, GNB_IO_APIC_ADDR, IO_APIC_INTERRUPTS); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, + GNB_IO_APIC_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/morgana/root_complex.c b/src/soc/amd/morgana/root_complex.c index 10e541521d..5a1a4ad1fe 100644 --- a/src/soc/amd/morgana/root_complex.c +++ b/src/soc/amd/morgana/root_complex.c @@ -187,7 +187,7 @@ static void read_resources(struct device *dev) static void root_complex_init(struct device *dev) { - setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)GNB_IO_APIC_ADDR); } static void acipgen_dptci(void) diff --git a/src/soc/amd/picasso/acpi.c b/src/soc/amd/picasso/acpi.c index a8639ebb44..2af645978a 100644 --- a/src/soc/amd/picasso/acpi.c +++ b/src/soc/amd/picasso/acpi.c @@ -33,11 +33,10 @@ unsigned long acpi_fill_madt(unsigned long current) /* create all subtables for processors */ current = acpi_create_madt_lapics(current); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, GNB_IO_APIC_ADDR, IO_APIC_INTERRUPTS); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, + GNB_IO_APIC_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/picasso/root_complex.c b/src/soc/amd/picasso/root_complex.c index c6623209af..9af9c0a78d 100644 --- a/src/soc/amd/picasso/root_complex.c +++ b/src/soc/amd/picasso/root_complex.c @@ -169,7 +169,7 @@ static void read_resources(struct device *dev) static void root_complex_init(struct device *dev) { - setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)GNB_IO_APIC_ADDR); } static void acipgen_dptci(void) diff --git a/src/soc/amd/stoneyridge/acpi.c b/src/soc/amd/stoneyridge/acpi.c index d6f7048c9f..20221d20ac 100644 --- a/src/soc/amd/stoneyridge/acpi.c +++ b/src/soc/amd/stoneyridge/acpi.c @@ -29,11 +29,9 @@ unsigned long acpi_fill_madt(unsigned long current) current = acpi_create_madt_lapics(current); /* Write Kern IOAPIC, only one */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - FCH_IOAPIC_ID, IO_APIC_ADDR, 0); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, - GNB_IOAPIC_ID, IO_APIC2_ADDR, 24); + current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC2_ADDR); /* PIT is connected to legacy IRQ 0, but IOAPIC GSI 2 */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)current, diff --git a/src/soc/amd/stoneyridge/northbridge.c b/src/soc/amd/stoneyridge/northbridge.c index 7e938964be..3960a391b7 100644 --- a/src/soc/amd/stoneyridge/northbridge.c +++ b/src/soc/amd/stoneyridge/northbridge.c @@ -164,7 +164,7 @@ static void set_resources(struct device *dev) static void northbridge_init(struct device *dev) { - setup_ioapic((u8 *)IO_APIC2_ADDR, GNB_IOAPIC_ID); + register_new_ioapic((u8 *)IO_APIC2_ADDR); } static unsigned long acpi_fill_hest(acpi_hest_t *hest) |