Commit 5828efb9 authored by Ard Biesheuvel's avatar Ard Biesheuvel

efi: ia64: move SAL systab handling out of generic EFI code

The SAL systab is an Itanium specific EFI configuration table, so
move its handling into arch/ia64 where it belongs.
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
parent ec7e1605
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include <asm/pal.h> #include <asm/pal.h>
#include <asm/fpu.h> #include <asm/fpu.h>
extern unsigned long sal_systab_phys;
extern spinlock_t sal_lock; extern spinlock_t sal_lock;
/* SAL spec _requires_ eight args for each call. */ /* SAL spec _requires_ eight args for each call. */
......
...@@ -167,7 +167,7 @@ ...@@ -167,7 +167,7 @@
static inline u32 static inline u32
sn_sal_rev(void) sn_sal_rev(void)
{ {
struct ia64_sal_systab *systab = __va(efi.sal_systab); struct ia64_sal_systab *systab = __va(sal_systab_phys);
return (u32)(systab->sal_b_rev_major << 8 | systab->sal_b_rev_minor); return (u32)(systab->sal_b_rev_major << 8 | systab->sal_b_rev_minor);
} }
......
...@@ -47,8 +47,11 @@ ...@@ -47,8 +47,11 @@
static __initdata unsigned long palo_phys; static __initdata unsigned long palo_phys;
unsigned long sal_systab_phys = EFI_INVALID_TABLE_ADDR;
static __initdata efi_config_table_type_t arch_tables[] = { static __initdata efi_config_table_type_t arch_tables[] = {
{PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID, "PALO", &palo_phys}, {PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID, "PALO", &palo_phys},
{SAL_SYSTEM_TABLE_GUID, "SALsystab", &sal_systab_phys},
{NULL_GUID, NULL, 0}, {NULL_GUID, NULL, 0},
}; };
......
...@@ -572,7 +572,7 @@ setup_arch (char **cmdline_p) ...@@ -572,7 +572,7 @@ setup_arch (char **cmdline_p)
find_memory(); find_memory();
/* process SAL system table: */ /* process SAL system table: */
ia64_sal_init(__va(efi.sal_systab)); ia64_sal_init(__va(sal_systab_phys));
#ifdef CONFIG_ITANIUM #ifdef CONFIG_ITANIUM
ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist); ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist);
......
...@@ -70,7 +70,6 @@ static const unsigned long * const efi_tables[] = { ...@@ -70,7 +70,6 @@ static const unsigned long * const efi_tables[] = {
&efi.acpi20, &efi.acpi20,
&efi.smbios, &efi.smbios,
&efi.smbios3, &efi.smbios3,
&efi.sal_systab,
&efi.boot_info, &efi.boot_info,
&efi.hcdp, &efi.hcdp,
&efi.uga, &efi.uga,
......
...@@ -39,7 +39,6 @@ struct efi __read_mostly efi = { ...@@ -39,7 +39,6 @@ struct efi __read_mostly efi = {
.acpi20 = EFI_INVALID_TABLE_ADDR, .acpi20 = EFI_INVALID_TABLE_ADDR,
.smbios = EFI_INVALID_TABLE_ADDR, .smbios = EFI_INVALID_TABLE_ADDR,
.smbios3 = EFI_INVALID_TABLE_ADDR, .smbios3 = EFI_INVALID_TABLE_ADDR,
.sal_systab = EFI_INVALID_TABLE_ADDR,
.boot_info = EFI_INVALID_TABLE_ADDR, .boot_info = EFI_INVALID_TABLE_ADDR,
.hcdp = EFI_INVALID_TABLE_ADDR, .hcdp = EFI_INVALID_TABLE_ADDR,
.uga = EFI_INVALID_TABLE_ADDR, .uga = EFI_INVALID_TABLE_ADDR,
...@@ -456,7 +455,6 @@ static __initdata efi_config_table_type_t common_tables[] = { ...@@ -456,7 +455,6 @@ static __initdata efi_config_table_type_t common_tables[] = {
{ACPI_TABLE_GUID, "ACPI", &efi.acpi}, {ACPI_TABLE_GUID, "ACPI", &efi.acpi},
{HCDP_TABLE_GUID, "HCDP", &efi.hcdp}, {HCDP_TABLE_GUID, "HCDP", &efi.hcdp},
{MPS_TABLE_GUID, "MPS", &efi.mps}, {MPS_TABLE_GUID, "MPS", &efi.mps},
{SAL_SYSTEM_TABLE_GUID, "SALsystab", &efi.sal_systab},
{SMBIOS_TABLE_GUID, "SMBIOS", &efi.smbios}, {SMBIOS_TABLE_GUID, "SMBIOS", &efi.smbios},
{SMBIOS3_TABLE_GUID, "SMBIOS 3.0", &efi.smbios3}, {SMBIOS3_TABLE_GUID, "SMBIOS 3.0", &efi.smbios3},
{UGA_IO_PROTOCOL_GUID, "UGA", &efi.uga}, {UGA_IO_PROTOCOL_GUID, "UGA", &efi.uga},
......
...@@ -984,7 +984,6 @@ extern struct efi { ...@@ -984,7 +984,6 @@ extern struct efi {
unsigned long acpi20; /* ACPI table (ACPI 2.0) */ unsigned long acpi20; /* ACPI table (ACPI 2.0) */
unsigned long smbios; /* SMBIOS table (32 bit entry point) */ unsigned long smbios; /* SMBIOS table (32 bit entry point) */
unsigned long smbios3; /* SMBIOS table (64 bit entry point) */ unsigned long smbios3; /* SMBIOS table (64 bit entry point) */
unsigned long sal_systab; /* SAL system table */
unsigned long boot_info; /* boot info table */ unsigned long boot_info; /* boot info table */
unsigned long hcdp; /* HCDP table */ unsigned long hcdp; /* HCDP table */
unsigned long uga; /* UGA table */ unsigned long uga; /* UGA table */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment