From: Graeme Gregory graeme.gregory@linaro.org
Add handling for tables from EFI in addition to the handling already present for tables passed via FDT.
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- drivers/acpi/plat/arm/boot.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/acpi/plat/arm/boot.c b/drivers/acpi/plat/arm/boot.c index 82b7bd6..9818ba1 100644 --- a/drivers/acpi/plat/arm/boot.c +++ b/drivers/acpi/plat/arm/boot.c @@ -746,13 +746,18 @@ void __init acpi_arm_blob_relocate(void) u32 ii; u64 *tmp;
- if (!acpi_arm_rsdp_info.phys_address && !acpi_arm_rsdp_info.size) { - printk(KERN_ERR "(E) ACPI: failed to find rsdp info\n"); + if (efi.acpi20) + paddress = efi.acpi20; + else if (efi.acpi) + paddress = efi.acpi; + else if (acpi_arm_rsdp_info.phys_address && acpi_arm_rsdp_info.size) { + paddress = acpi_arm_rsdp_info.phys_address; + paddress += ACPI_BLOB_HEADER_SIZE; + } else { + pr_err("ACPI: failed to find rsdp info\n"); return; }
- paddress = acpi_arm_rsdp_info.phys_address; - paddress += ACPI_BLOB_HEADER_SIZE; vaddress = phys_to_virt(paddress);
/* fixups for the rsdp */
From: Graeme Gregory graeme.gregory@linaro.org
Remove the debugging code from acpi initialisation as it is no longer needed and causes issues becuase it is called before paging_init() which depending on memory layout crashes.
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- drivers/of/fdt.c | 14 -------------- 1 file changed, 14 deletions(-)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 0535169..3b8b38e 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -728,20 +728,6 @@ int __init early_init_dt_scan_acpi(unsigned long node, const char *uname, if (p != NULL && l > 0) pinfo->size = be32_to_cpu(*p);
- printk("acpi: start info is 0x%016llX, %lu bytes\n", - pinfo->phys_address, pinfo->size); - - memblock_reserve(pinfo->phys_address, pinfo->size); - - sig = phys_to_virt(pinfo->phys_address); - - printk("acpi: sig is "%c%c%c%c"\n", - sig[0], sig[1], sig[2], sig[3]); - printk("acpi: info is %02x %02x %02x %02x\n", - sig[4], sig[5], sig[6], sig[7]); - printk("acpi: first table is "%c%c%c%c"\n", - sig[8], sig[9], sig[10], sig[11]); - return 1; } #endif