diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c index 8275c36ad3..c0534343f1 100644 --- a/arch/x86/lib/acpi_table.c +++ b/arch/x86/lib/acpi_table.c @@ -29,9 +29,6 @@ #include #include -/* ACPI RSDP address to be used in boot parameters */ -static ulong acpi_rsdp_addr; - static int acpi_create_madt_lapic(struct acpi_madt_lapic *lapic, u8 cpu, u8 apic) { @@ -513,24 +510,6 @@ int acpi_write_mcfg(struct acpi_ctx *ctx, const struct acpi_writer *entry) } ACPI_WRITER(5mcfg, "MCFG", acpi_write_mcfg, 0); -/* - * QEMU's version of write_acpi_tables is defined in drivers/misc/qfw.c - */ -int write_acpi_tables_x86(struct acpi_ctx *ctx, - const struct acpi_writer *entry) -{ - acpi_rsdp_addr = (unsigned long)ctx->rsdp; - debug("ACPI: done\n"); - - return 0; -} -ACPI_WRITER(9x86, NULL, write_acpi_tables_x86, 0); - -ulong acpi_get_rsdp_addr(void) -{ - return acpi_rsdp_addr; -} - /** * acpi_write_hpet() - Write out a HPET table * diff --git a/lib/acpi/acpi_writer.c b/lib/acpi/acpi_writer.c index 59f951cba4..9b0aa23fd7 100644 --- a/lib/acpi/acpi_writer.c +++ b/lib/acpi/acpi_writer.c @@ -102,6 +102,14 @@ int write_dev_tables(struct acpi_ctx *ctx, const struct acpi_writer *entry) return 0; } ACPI_WRITER(8dev, NULL, write_dev_tables, 0); + +ulong acpi_get_rsdp_addr(void) +{ + if (!gd->acpi_ctx) + return 0; + + return map_to_sysmem(gd->acpi_ctx->rsdp); +} #endif /* QEMU */ void acpi_setup_ctx(struct acpi_ctx *ctx, ulong start)