[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 4/6] arm/efi: switch to arm64 linux loader
From: |
Leif Lindholm |
Subject: |
[PATCH v4 4/6] arm/efi: switch to arm64 linux loader |
Date: |
Mon, 9 Jul 2018 18:33:03 +0100 |
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 <address@hidden>
---
grub-core/Makefile.core.def | 7 ++++---
grub-core/kern/efi/mm.c | 2 +-
include/grub/arm/linux.h | 5 +++++
include/grub/efi/efi.h | 2 --
4 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index fc4767f19..9590e87d9 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -229,7 +229,6 @@ kernel = {
ia64_efi = kern/ia64/cache.c;
arm_efi = kern/arm/efi/init.c;
- arm_efi = kern/arm/efi/misc.c;
arm_efi = kern/efi/fdt.c;
arm64_efi = kern/arm64/efi/init.c;
@@ -1693,7 +1692,9 @@ module = {
powerpc_ieee1275 = loader/powerpc/ieee1275/linux.c;
sparc64_ieee1275 = loader/sparc64/ieee1275/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;
common = loader/linux.c;
common = lib/cmdline.c;
@@ -1702,7 +1703,7 @@ module = {
module = {
name = fdt;
- arm64 = loader/efi/fdt.c;
+ efi = loader/efi/fdt.c;
common = lib/fdt.c;
enable = fdt;
};
diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c
index b7cf144e5..f443b8955 100644
--- a/grub-core/kern/efi/mm.c
+++ b/grub-core/kern/efi/mm.c
@@ -630,7 +630,7 @@ grub_efi_mm_init (void)
2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE));
}
-#if defined (__aarch64__)
+#if defined (__aarch64__) || defined (__arm__)
grub_err_t
grub_efi_get_ram_base(grub_addr_t *base_addr)
{
diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
index cceb9c4a9..3d0d15eb4 100644
--- a/include/grub/arm/linux.h
+++ b/include/grub/arm/linux.h
@@ -34,6 +34,11 @@ struct linux_arm_kernel_header {
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
# include <grub/uboot/uboot.h>
# define LINUX_ADDRESS (start_of_ram + 0x8000)
diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h
index 1deaa3c8f..2c6648d46 100644
--- a/include/grub/efi/efi.h
+++ b/include/grub/efi/efi.h
@@ -92,8 +92,6 @@ extern void (*EXPORT_VAR(grub_efi_net_config))
(grub_efi_handle_t hnd,
#if defined(__arm__) || defined(__aarch64__)
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 *);
#include <grub/cpu/linux.h>
grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header
*lh);
--
2.11.0
- [PATCH v4 0/6] efi: arm linux loader unification and correctness, Leif Lindholm, 2018/07/09
- [PATCH v4 1/6] efi: add central copy of grub_efi_find_mmap_size, Leif Lindholm, 2018/07/09
- [PATCH v4 2/6] efi: add grub_efi_get_ram_base() function for arm64, Leif Lindholm, 2018/07/09
- [PATCH v4 3/6] arm64 linux loader: rename functions and macros and move to common headers, Leif Lindholm, 2018/07/09
- [PATCH v4 4/6] arm/efi: switch to arm64 linux loader,
Leif Lindholm <=
- [PATCH v4 6/6] efi: restrict arm/arm64 linux loader initrd placement, Leif Lindholm, 2018/07/09
- [PATCH v4 5/6] arm: delete unused efi support from loader/arm, Leif Lindholm, 2018/07/09
- Re: [PATCH v4 0/6] efi: arm linux loader unification and correctness, Daniel Kiper, 2018/07/10