[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] re-add efi support to acpi_os_get_root_pointer()
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1213281861 -3600 # Node ID 4ebd8f3774263b4cd10fd9b1b7a93864acf88ab0 # Parent 0089fe3d209d13d752215b0214c9a7c9f5ee4fad [IA64] re-add efi support to acpi_os_get_root_pointer() On ia64 RSDP address is obtained from efi table instead of memory scan. Otherwise it may use wrong table to fail to find tables. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- xen/drivers/acpi/osl.c | 25 ++++++++++++++++++++++--- xen/include/asm-ia64/config.h | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff -r 0089fe3d209d -r 4ebd8f377426 xen/drivers/acpi/osl.c --- a/xen/drivers/acpi/osl.c Thu Jun 12 15:42:09 2008 +0100 +++ b/xen/drivers/acpi/osl.c Thu Jun 12 15:44:21 2008 +0100 @@ -37,6 +37,9 @@ #include <acpi/platform/aclinux.h> #include <xen/spinlock.h> #include <xen/domain_page.h> +#ifdef __ia64__ +#include <linux/efi.h> +#endif #define _COMPONENT ACPI_OS_SERVICES ACPI_MODULE_NAME("osl") @@ -82,9 +85,25 @@ void acpi_os_vprintf(const char *fmt, va acpi_physical_address __init acpi_os_get_root_pointer(void) { - acpi_physical_address pa = 0; - acpi_find_root_pointer(&pa); - return pa; +#ifdef __ia64__ + if (efi_enabled) { + if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) + return efi.acpi20; + else if (efi.acpi != EFI_INVALID_TABLE_ADDR) + return efi.acpi; + else { + printk(KERN_ERR PREFIX + "System description tables not found\n"); + return 0; + } + } else +#endif + { + acpi_physical_address pa = 0; + + acpi_find_root_pointer(&pa); + return pa; + } } void __iomem * diff -r 0089fe3d209d -r 4ebd8f377426 xen/include/asm-ia64/config.h --- a/xen/include/asm-ia64/config.h Thu Jun 12 15:42:09 2008 +0100 +++ b/xen/include/asm-ia64/config.h Thu Jun 12 15:44:21 2008 +0100 @@ -17,6 +17,7 @@ // this needs to be on to run on system with large memory hole #define CONFIG_VIRTUAL_FRAME_TABLE +#define CONFIG_EFI #define CONFIG_EFI_PCDP #define CONFIG_SERIAL_SGI_L1_CONSOLE _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |