efi: ia64: move SAL systab handling out of generic EFI code
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 25 Jun 2019 14:28:53 +0000 (16:28 +0200)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 8 Aug 2019 08:01:48 +0000 (11:01 +0300)
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>
arch/ia64/include/asm/sal.h
arch/ia64/include/asm/sn/sn_sal.h
arch/ia64/kernel/efi.c
arch/ia64/kernel/setup.c
arch/x86/platform/efi/efi.c
drivers/firmware/efi/efi.c
include/linux/efi.h

index 588f33156da6901053bc1022856b59ca86a1aea6..08f5b6aaed7324096e0d07cc39503c7d65b1dc9d 100644 (file)
@@ -43,6 +43,7 @@
 #include <asm/pal.h>
 #include <asm/fpu.h>
 
+extern unsigned long sal_systab_phys;
 extern spinlock_t sal_lock;
 
 /* SAL spec _requires_ eight args for each call. */
index 1f5ff470a5a18336dabfd257a94cbf5576ad4055..5142c444652dec305d364c478a17e3db3d39d152 100644 (file)
 static inline u32
 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);
 }
index 3795d18276c43e9dba11098260651732018690ea..0a34dcc435c6167add04c1a8fc0356fad8c0afa1 100644 (file)
 
 static __initdata unsigned long palo_phys;
 
+unsigned long sal_systab_phys = EFI_INVALID_TABLE_ADDR;
+
 static __initdata efi_config_table_type_t arch_tables[] = {
        {PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID, "PALO", &palo_phys},
+       {SAL_SYSTEM_TABLE_GUID, "SALsystab", &sal_systab_phys},
        {NULL_GUID, NULL, 0},
 };
 
index c9cfa760cd57bfc4c00ce275708e6723422d9769..0e1b4eb149b4bc0537bff5a4807b8f38c06c2000 100644 (file)
@@ -572,7 +572,7 @@ setup_arch (char **cmdline_p)
        find_memory();
 
        /* process SAL system table: */
-       ia64_sal_init(__va(efi.sal_systab));
+       ia64_sal_init(__va(sal_systab_phys));
 
 #ifdef CONFIG_ITANIUM
        ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist);
index 9866a358476518db6c0f36bc82b1e80bfc72c20e..6697c109c44977af5835942d57720273235c9eff 100644 (file)
@@ -70,7 +70,6 @@ static const unsigned long * const efi_tables[] = {
        &efi.acpi20,
        &efi.smbios,
        &efi.smbios3,
-       &efi.sal_systab,
        &efi.boot_info,
        &efi.hcdp,
        &efi.uga,
index 4dfd873373bd93007e7d1800d04951a3145e307f..801925c5bcfb2f2ea58883f7724b9f7dd564e7df 100644 (file)
@@ -39,7 +39,6 @@ struct efi __read_mostly efi = {
        .acpi20                 = EFI_INVALID_TABLE_ADDR,
        .smbios                 = EFI_INVALID_TABLE_ADDR,
        .smbios3                = EFI_INVALID_TABLE_ADDR,
-       .sal_systab             = EFI_INVALID_TABLE_ADDR,
        .boot_info              = EFI_INVALID_TABLE_ADDR,
        .hcdp                   = 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},
        {HCDP_TABLE_GUID, "HCDP", &efi.hcdp},
        {MPS_TABLE_GUID, "MPS", &efi.mps},
-       {SAL_SYSTEM_TABLE_GUID, "SALsystab", &efi.sal_systab},
        {SMBIOS_TABLE_GUID, "SMBIOS", &efi.smbios},
        {SMBIOS3_TABLE_GUID, "SMBIOS 3.0", &efi.smbios3},
        {UGA_IO_PROTOCOL_GUID, "UGA", &efi.uga},
index 171bb1005a10b196ee89ab409254c7f92585b483..f88318b85fb0c932da08ac6f61047bcd9b665f8e 100644 (file)
@@ -984,7 +984,6 @@ extern struct efi {
        unsigned long acpi20;           /* ACPI table  (ACPI 2.0) */
        unsigned long smbios;           /* SMBIOS table (32 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 hcdp;             /* HCDP table */
        unsigned long uga;              /* UGA table */