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: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
parent
ec7e1605d7
commit
5828efb95b
|
@ -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 @@
|
||||||
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 @@
|
||||||
|
|
||||||
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)
|
||||||
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[] = {
|
||||||
&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 = {
|
||||||
.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[] = {
|
||||||
{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 {
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in New Issue