diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2023-07-05 14:24:01 +0200 |
---|---|---|
committer | Lean Sheng Tan <sheng.tan@9elements.com> | 2023-08-02 17:11:32 +0000 |
commit | eb988dfcbad35a1b9ccb5e17d5f06f28f0b995a8 (patch) | |
tree | 3062a5f47f7d7378edf4e2c856a8616c3470b3b6 | |
parent | cd46e5f63a468a3f4aae9267b5db94c4e5cc1458 (diff) |
acpi/acpi.c: Move setting FADT SCI INT to arch specific code
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: Ic1533cb520a057b29fc8f926db38338cd3401b18
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76295
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
-rw-r--r-- | src/acpi/acpi.c | 25 | ||||
-rw-r--r-- | src/arch/x86/acpi.c | 18 |
2 files changed, 18 insertions, 25 deletions
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 1330f127bc..a2e9fdb8d8 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -27,11 +27,6 @@ #include <types.h> #include <version.h> -#if ENV_X86 -#include <arch/ioapic.h> -#include <arch/smp/mpspec.h> -#endif - static acpi_rsdp_t *valid_rsdp(acpi_rsdp_t *rsdp); u8 acpi_checksum(u8 *table, u32 length) @@ -139,24 +134,6 @@ static int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base, return sizeof(acpi_mcfg_mmconfig_t); } -static u16 acpi_sci_int(void) -{ -#if ENV_X86 - u8 gsi, irq, flags; - - ioapic_get_sci_pin(&gsi, &irq, &flags); - - /* ACPI Release 6.5, 5.2.9 and 5.2.15.5. */ - if (!CONFIG(ACPI_HAVE_PCAT_8259)) - return gsi; - - assert(irq < 16); - return irq; -#else - return 0; -#endif -} - static void acpi_create_madt(acpi_header_t *header, void *unused) { acpi_madt_t *madt = (acpi_madt_t *)header; @@ -1103,8 +1080,6 @@ static void acpi_create_fadt(acpi_header_t *header, void *arg1) fadt->preferred_pm_profile = acpi_get_preferred_pm_profile(); - fadt->sci_int = acpi_sci_int(); - arch_fill_fadt(fadt); acpi_fill_fadt(fadt); diff --git a/src/arch/x86/acpi.c b/src/arch/x86/acpi.c index ffa3463259..018cdf5cc3 100644 --- a/src/arch/x86/acpi.c +++ b/src/arch/x86/acpi.c @@ -1,12 +1,30 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include <acpi/acpi.h> +#include <arch/ioapic.h> #include <cf9_reset.h> #include <cpu/x86/smm.h> #include <pc80/mc146818rtc.h> +static u16 acpi_sci_int(void) +{ + u8 gsi, irq, flags; + + ioapic_get_sci_pin(&gsi, &irq, &flags); + + /* ACPI Release 6.5, 5.2.9 and 5.2.15.5. */ + if (!CONFIG(ACPI_HAVE_PCAT_8259)) + return gsi; + + assert(irq < 16); + return irq; +} + + void arch_fill_fadt(acpi_fadt_t *fadt) { + fadt->sci_int = acpi_sci_int(); + if (CONFIG(HAVE_CF9_RESET)) { fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO; fadt->reset_reg.bit_width = 8; |