diff options
Diffstat (limited to 'arch/ia64/kernel')
| -rw-r--r-- | arch/ia64/kernel/acpi.c | 6 | ||||
| -rw-r--r-- | arch/ia64/kernel/efi.c | 21 | ||||
| -rw-r--r-- | arch/ia64/kernel/setup.c | 2 |
3 files changed, 19 insertions, 10 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index a4e218ce2edb..58c93a30348c 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
| @@ -651,9 +651,9 @@ unsigned long __init acpi_find_rsdp(void) | |||
| 651 | { | 651 | { |
| 652 | unsigned long rsdp_phys = 0; | 652 | unsigned long rsdp_phys = 0; |
| 653 | 653 | ||
| 654 | if (efi.acpi20) | 654 | if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) |
| 655 | rsdp_phys = __pa(efi.acpi20); | 655 | rsdp_phys = efi.acpi20; |
| 656 | else if (efi.acpi) | 656 | else if (efi.acpi != EFI_INVALID_TABLE_ADDR) |
| 657 | printk(KERN_WARNING PREFIX | 657 | printk(KERN_WARNING PREFIX |
| 658 | "v1.0/r0.71 tables no longer supported\n"); | 658 | "v1.0/r0.71 tables no longer supported\n"); |
| 659 | return rsdp_phys; | 659 | return rsdp_phys; |
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 2993748c13df..12cfedce73b1 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
| @@ -458,24 +458,33 @@ efi_init (void) | |||
| 458 | printk(KERN_INFO "EFI v%u.%.02u by %s:", | 458 | printk(KERN_INFO "EFI v%u.%.02u by %s:", |
| 459 | efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, vendor); | 459 | efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, vendor); |
| 460 | 460 | ||
| 461 | efi.mps = EFI_INVALID_TABLE_ADDR; | ||
| 462 | efi.acpi = EFI_INVALID_TABLE_ADDR; | ||
| 463 | efi.acpi20 = EFI_INVALID_TABLE_ADDR; | ||
| 464 | efi.smbios = EFI_INVALID_TABLE_ADDR; | ||
| 465 | efi.sal_systab = EFI_INVALID_TABLE_ADDR; | ||
| 466 | efi.boot_info = EFI_INVALID_TABLE_ADDR; | ||
| 467 | efi.hcdp = EFI_INVALID_TABLE_ADDR; | ||
| 468 | efi.uga = EFI_INVALID_TABLE_ADDR; | ||
| 469 | |||
| 461 | for (i = 0; i < (int) efi.systab->nr_tables; i++) { | 470 | for (i = 0; i < (int) efi.systab->nr_tables; i++) { |
| 462 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { | 471 | if (efi_guidcmp(config_tables[i].guid, MPS_TABLE_GUID) == 0) { |
| 463 | efi.mps = __va(config_tables[i].table); | 472 | efi.mps = config_tables[i].table; |
| 464 | printk(" MPS=0x%lx", config_tables[i].table); | 473 | printk(" MPS=0x%lx", config_tables[i].table); |
| 465 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { | 474 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_20_TABLE_GUID) == 0) { |
| 466 | efi.acpi20 = __va(config_tables[i].table); | 475 | efi.acpi20 = config_tables[i].table; |
| 467 | printk(" ACPI 2.0=0x%lx", config_tables[i].table); | 476 | printk(" ACPI 2.0=0x%lx", config_tables[i].table); |
| 468 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { | 477 | } else if (efi_guidcmp(config_tables[i].guid, ACPI_TABLE_GUID) == 0) { |
| 469 | efi.acpi = __va(config_tables[i].table); | 478 | efi.acpi = config_tables[i].table; |
| 470 | printk(" ACPI=0x%lx", config_tables[i].table); | 479 | printk(" ACPI=0x%lx", config_tables[i].table); |
| 471 | } else if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { | 480 | } else if (efi_guidcmp(config_tables[i].guid, SMBIOS_TABLE_GUID) == 0) { |
| 472 | efi.smbios = __va(config_tables[i].table); | 481 | efi.smbios = config_tables[i].table; |
| 473 | printk(" SMBIOS=0x%lx", config_tables[i].table); | 482 | printk(" SMBIOS=0x%lx", config_tables[i].table); |
| 474 | } else if (efi_guidcmp(config_tables[i].guid, SAL_SYSTEM_TABLE_GUID) == 0) { | 483 | } else if (efi_guidcmp(config_tables[i].guid, SAL_SYSTEM_TABLE_GUID) == 0) { |
| 475 | efi.sal_systab = __va(config_tables[i].table); | 484 | efi.sal_systab = config_tables[i].table; |
| 476 | printk(" SALsystab=0x%lx", config_tables[i].table); | 485 | printk(" SALsystab=0x%lx", config_tables[i].table); |
| 477 | } else if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { | 486 | } else if (efi_guidcmp(config_tables[i].guid, HCDP_TABLE_GUID) == 0) { |
| 478 | efi.hcdp = __va(config_tables[i].table); | 487 | efi.hcdp = config_tables[i].table; |
| 479 | printk(" HCDP=0x%lx", config_tables[i].table); | 488 | printk(" HCDP=0x%lx", config_tables[i].table); |
| 480 | } | 489 | } |
| 481 | } | 490 | } |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index a4421a66ea5b..e4dfda1eb7dd 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
| @@ -434,7 +434,7 @@ setup_arch (char **cmdline_p) | |||
| 434 | find_memory(); | 434 | find_memory(); |
| 435 | 435 | ||
| 436 | /* process SAL system table: */ | 436 | /* process SAL system table: */ |
| 437 | ia64_sal_init(efi.sal_systab); | 437 | ia64_sal_init(__va(efi.sal_systab)); |
| 438 | 438 | ||
| 439 | ia64_setup_printk_clock(); | 439 | ia64_setup_printk_clock(); |
| 440 | 440 | ||
