|
@@ -27,6 +27,9 @@
|
|
|
*/
|
|
|
extern const unsigned char AmlCode[];
|
|
|
|
|
|
+/* ACPI RSDP address to be used in boot parameters */
|
|
|
+static ulong acpi_rsdp_addr;
|
|
|
+
|
|
|
static void acpi_write_rsdp(struct acpi_rsdp *rsdp, struct acpi_rsdt *rsdt,
|
|
|
struct acpi_xsdt *xsdt)
|
|
|
{
|
|
@@ -357,8 +360,7 @@ void enter_acpi_mode(int pm1_cnt)
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
- * QEMU's version of write_acpi_tables is defined in
|
|
|
- * arch/x86/cpu/qemu/acpi_table.c
|
|
|
+ * QEMU's version of write_acpi_tables is defined in drivers/misc/qfw.c
|
|
|
*/
|
|
|
ulong write_acpi_tables(ulong start)
|
|
|
{
|
|
@@ -461,6 +463,7 @@ ulong write_acpi_tables(ulong start)
|
|
|
|
|
|
debug("current = %x\n", current);
|
|
|
|
|
|
+ acpi_rsdp_addr = (unsigned long)rsdp;
|
|
|
debug("ACPI: done\n");
|
|
|
|
|
|
/* Don't touch ACPI hardware on HW reduced platforms */
|
|
@@ -476,6 +479,11 @@ ulong write_acpi_tables(ulong start)
|
|
|
return current;
|
|
|
}
|
|
|
|
|
|
+ulong acpi_get_rsdp_addr(void)
|
|
|
+{
|
|
|
+ return acpi_rsdp_addr;
|
|
|
+}
|
|
|
+
|
|
|
static struct acpi_rsdp *acpi_valid_rsdp(struct acpi_rsdp *rsdp)
|
|
|
{
|
|
|
if (strncmp((char *)rsdp, RSDP_SIG, sizeof(RSDP_SIG) - 1) != 0)
|