arm/efi: Switch to arm64 linux loader
The arm64 and arm linux kernel EFI-stub support presents pretty much identical interfaces, so the same linux loader source can be used for both architectures. Switch 32-bit ARM UEFI platforms over to the existing EFI-stub aware loader initially developed for arm64. This *WILL* stop non-efistub Linux kernels from booting on arm-efi. Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
ba3da3c002
commit
619d60b56d
4 changed files with 10 additions and 6 deletions
|
@ -231,7 +231,6 @@ kernel = {
|
||||||
ia64_efi = kern/ia64/cache.c;
|
ia64_efi = kern/ia64/cache.c;
|
||||||
|
|
||||||
arm_efi = kern/arm/efi/init.c;
|
arm_efi = kern/arm/efi/init.c;
|
||||||
arm_efi = kern/arm/efi/misc.c;
|
|
||||||
arm_efi = kern/efi/fdt.c;
|
arm_efi = kern/efi/fdt.c;
|
||||||
|
|
||||||
arm64_efi = kern/arm64/efi/init.c;
|
arm64_efi = kern/arm64/efi/init.c;
|
||||||
|
@ -1747,7 +1746,9 @@ module = {
|
||||||
powerpc_ieee1275 = loader/powerpc/ieee1275/linux.c;
|
powerpc_ieee1275 = loader/powerpc/ieee1275/linux.c;
|
||||||
sparc64_ieee1275 = loader/sparc64/ieee1275/linux.c;
|
sparc64_ieee1275 = loader/sparc64/ieee1275/linux.c;
|
||||||
ia64_efi = loader/ia64/efi/linux.c;
|
ia64_efi = loader/ia64/efi/linux.c;
|
||||||
arm = loader/arm/linux.c;
|
arm_coreboot = loader/arm/linux.c;
|
||||||
|
arm_efi = loader/arm64/linux.c;
|
||||||
|
arm_uboot = loader/arm/linux.c;
|
||||||
arm64 = loader/arm64/linux.c;
|
arm64 = loader/arm64/linux.c;
|
||||||
common = loader/linux.c;
|
common = loader/linux.c;
|
||||||
common = lib/cmdline.c;
|
common = lib/cmdline.c;
|
||||||
|
@ -1756,7 +1757,7 @@ module = {
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
name = fdt;
|
name = fdt;
|
||||||
arm64 = loader/efi/fdt.c;
|
efi = loader/efi/fdt.c;
|
||||||
common = lib/fdt.c;
|
common = lib/fdt.c;
|
||||||
enable = fdt;
|
enable = fdt;
|
||||||
};
|
};
|
||||||
|
|
|
@ -666,7 +666,7 @@ grub_efi_mm_init (void)
|
||||||
2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE));
|
2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined (__aarch64__)
|
#if defined (__aarch64__) || defined (__arm__)
|
||||||
grub_err_t
|
grub_err_t
|
||||||
grub_efi_get_ram_base(grub_addr_t *base_addr)
|
grub_efi_get_ram_base(grub_addr_t *base_addr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,6 +34,11 @@ struct linux_arm_kernel_header {
|
||||||
grub_uint32_t hdr_offset;
|
grub_uint32_t hdr_offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(__arm__)
|
||||||
|
# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE
|
||||||
|
# define linux_armxx_kernel_header linux_arm_kernel_header
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined GRUB_MACHINE_UBOOT
|
#if defined GRUB_MACHINE_UBOOT
|
||||||
# include <grub/uboot/uboot.h>
|
# include <grub/uboot/uboot.h>
|
||||||
# define LINUX_ADDRESS (start_of_ram + 0x8000)
|
# define LINUX_ADDRESS (start_of_ram + 0x8000)
|
||||||
|
|
|
@ -94,8 +94,6 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd,
|
||||||
|
|
||||||
#if defined(__arm__) || defined(__aarch64__)
|
#if defined(__arm__) || defined(__aarch64__)
|
||||||
void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void);
|
void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void);
|
||||||
#endif
|
|
||||||
#if defined(__aarch64__)
|
|
||||||
grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *);
|
grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *);
|
||||||
#include <grub/cpu/linux.h>
|
#include <grub/cpu/linux.h>
|
||||||
grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh);
|
grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh);
|
||||||
|
|
Loading…
Reference in a new issue