aboutsummaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-12-01 09:02:51 -0700
committerSimon Glass <sjg@chromium.org>2022-01-25 11:44:36 -0700
commita53d38f80a1b7833a7efad6412fbd0b17cc33a99 (patch)
tree85eff932833cf3db206f243458ef1530d80d427c /arch/x86
parent94ba15a3f13ff5b510d426d13854014bb9cb4713 (diff)
downloadu-boot-a53d38f80a1b7833a7efad6412fbd0b17cc33a99.zip
u-boot-a53d38f80a1b7833a7efad6412fbd0b17cc33a99.tar.gz
u-boot-a53d38f80a1b7833a7efad6412fbd0b17cc33a99.tar.bz2
x86: Move FACS table to a writer function
Move this table over to use a writer function, moving the code from the x86 implementation. Add a pointer to the DSDT in struct acpi_ctx so we can reference it later. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/lib/acpi_table.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c
index e6aa3c5..22f34a4 100644
--- a/arch/x86/lib/acpi_table.c
+++ b/arch/x86/lib/acpi_table.c
@@ -38,21 +38,6 @@ extern const unsigned char AmlCode[];
/* ACPI RSDP address to be used in boot parameters */
static ulong acpi_rsdp_addr;
-static void acpi_create_facs(struct acpi_facs *facs)
-{
- memset((void *)facs, 0, sizeof(struct acpi_facs));
-
- memcpy(facs->signature, "FACS", 4);
- facs->length = sizeof(struct acpi_facs);
- facs->hardware_signature = 0;
- facs->firmware_waking_vector = 0;
- facs->global_lock = 0;
- facs->flags = 0;
- facs->x_firmware_waking_vector_l = 0;
- facs->x_firmware_waking_vector_h = 0;
- facs->version = 1;
-}
-
static int acpi_create_madt_lapic(struct acpi_madt_lapic *lapic,
u8 cpu, u8 apic)
{
@@ -507,7 +492,6 @@ static int write_acpi_tables_x86(struct acpi_ctx *ctx,
const struct acpi_writer *entry)
{
const int thl = sizeof(struct acpi_table_header);
- struct acpi_facs *facs;
struct acpi_table_header *dsdt;
struct acpi_fadt *fadt;
struct acpi_table_header *ssdt;
@@ -521,12 +505,6 @@ static int write_acpi_tables_x86(struct acpi_ctx *ctx,
int ret;
int i;
- debug("ACPI: * FACS\n");
- facs = ctx->current;
- acpi_inc_align(ctx, sizeof(struct acpi_facs));
-
- acpi_create_facs(facs);
-
debug("ACPI: * DSDT\n");
dsdt = ctx->current;
@@ -599,7 +577,7 @@ static int write_acpi_tables_x86(struct acpi_ctx *ctx,
debug("ACPI: * FADT\n");
fadt = ctx->current;
acpi_inc_align(ctx, sizeof(struct acpi_fadt));
- acpi_create_fadt(fadt, facs, dsdt);
+ acpi_create_fadt(fadt, ctx->facs, dsdt);
acpi_add_table(ctx, fadt);
debug("ACPI: * SSDT\n");
@@ -666,7 +644,7 @@ static int write_acpi_tables_x86(struct acpi_ctx *ctx,
return 0;
}
-ACPI_WRITER(x86, NULL, write_acpi_tables_x86, 0);
+ACPI_WRITER(2x86, NULL, write_acpi_tables_x86, 0);
ulong acpi_get_rsdp_addr(void)
{