diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2023-06-22 21:34:16 +0200 |
---|---|---|
committer | Lean Sheng Tan <sheng.tan@9elements.com> | 2023-08-02 17:11:06 +0000 |
commit | cd46e5f63a468a3f4aae9267b5db94c4e5cc1458 (patch) | |
tree | 0c456c15a54741b8d0e53ee8d63ca8819659840a /src/acpi | |
parent | 51d94c7d73538e275205ead8504f487ab3cc58a1 (diff) |
acpi/acpi.c: Add and use acpi_arch_fill_madt()
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: I4e5032fd02af7e8e9ffd2e20aa214a8392ab6335
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76070
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Diffstat (limited to 'src/acpi')
-rw-r--r-- | src/acpi/acpi.c | 10 | ||||
-rw-r--r-- | src/acpi/acpi_apic.c | 20 |
2 files changed, 19 insertions, 11 deletions
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 65be82eed0..1330f127bc 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -165,15 +165,7 @@ static void acpi_create_madt(acpi_header_t *header, void *unused) if (acpi_fill_header(header, "APIC", MADT, sizeof(acpi_madt_t)) != CB_SUCCESS) return; - madt->lapic_addr = cpu_get_lapic_addr(); - if (CONFIG(ACPI_HAVE_PCAT_8259)) - madt->flags |= 1; - - if (CONFIG(ACPI_COMMON_MADT_LAPIC)) - current = acpi_create_madt_lapics_with_nmis(current); - - if (CONFIG(ACPI_COMMON_MADT_IOAPIC)) - current = acpi_create_madt_ioapic_gsi0_default(current); + current = acpi_arch_fill_madt(madt, current); if (CONFIG(ACPI_CUSTOM_MADT)) current = acpi_fill_madt(current); diff --git a/src/acpi/acpi_apic.c b/src/acpi/acpi_apic.c index 38daaab514..f952d0a104 100644 --- a/src/acpi/acpi_apic.c +++ b/src/acpi/acpi_apic.c @@ -139,7 +139,7 @@ static int acpi_create_madt_sci_override(acpi_madt_irqoverride_t *irqoverride) return irqoverride->length; } -unsigned long acpi_create_madt_ioapic_gsi0_default(unsigned long current) +static unsigned long acpi_create_madt_ioapic_gsi0_default(unsigned long current) { current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR); @@ -194,7 +194,7 @@ unsigned long acpi_create_madt_lapic_nmis(unsigned long current) return current; } -unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current) +static unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current) { current = acpi_create_madt_lapics(current); current = acpi_create_madt_lapic_nmis(current); @@ -227,3 +227,19 @@ int acpi_create_srat_x2apic(acpi_srat_x2apic_t *x2apic, u32 node, u32 apic) return x2apic->length; } + +unsigned long acpi_arch_fill_madt(acpi_madt_t *madt, unsigned long current) +{ + madt->lapic_addr = cpu_get_lapic_addr(); + + if (CONFIG(ACPI_HAVE_PCAT_8259)) + madt->flags |= 1; + + if (CONFIG(ACPI_COMMON_MADT_LAPIC)) + current = acpi_create_madt_lapics_with_nmis(current); + + if (CONFIG(ACPI_COMMON_MADT_IOAPIC)) + current = acpi_create_madt_ioapic_gsi0_default(current); + + return current; +} |