aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/acpi/acpi.c25
-rw-r--r--src/arch/x86/acpi.c18
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;