[v3,0/6] efi: arm linux loader unification and correctness

Message ID 20180627171720.27028-1-leif.lindholm@linaro.org
Headers show
  • efi: arm linux loader unification and correctness
Related show


Leif Lindholm June 27, 2018, 5:17 p.m.
The existing linux loader for 32-bit ARM is really only a piggy-back
on the U-Boot loader, and for UEFI it's entirely possible to reuse
the same loader across multiple architectures.

This set will stop the ability to boot non-efistub kernels on arm-efi,
but that has really only ever worked by luck.

Also, both arm and arm64 have certain requirements with regards to
placement of the initrd, which weren't honored by the existing loader -
leading to theoretical issues on arm and some very observable ones on
arm64 systems with large amounts of RAM or large holes in the memory
map. So ensure the unified loader respects these requirements.

It would be difficult to provide a linear history of this set, but the
main change since v2 is the renaming/refactoring of linux headers to
be included for multiple architectures in a single source file
(which was actually submitted as a separate set), and the follow-on
changes this required for the unified apis.

Leif Lindholm (6):
  efi: add central copy of grub_efi_find_mmap_size
  efi: add grub_efi_get_ram_base() function for arm64
  arm64 linux loader: rename functions and macros and move to common
  arm/efi: switch to arm64 linux loader
  arm: delete unused efi support from loader/arm
  efi: restrict arm/arm64 linux loader initrd placement

 grub-core/Makefile.am             |   1 -
 grub-core/Makefile.core.def       |   7 +-
 grub-core/kern/arm/efi/misc.c     | 202 --------------------------------------
 grub-core/kern/efi/mm.c           |  56 +++++++++++
 grub-core/loader/arm/linux.c      |  28 ------
 grub-core/loader/arm64/linux.c    |  53 ++++++++--
 grub-core/loader/arm64/xen_boot.c |  10 +-
 include/grub/arm/efi/loader.h     |  26 -----
 include/grub/arm/linux.h          |  21 +---
 include/grub/arm64/linux.h        |   9 +-
 include/grub/efi/efi.h            |   6 ++
 11 files changed, 125 insertions(+), 294 deletions(-)
 delete mode 100644 grub-core/kern/arm/efi/misc.c
 delete mode 100644 include/grub/arm/efi/loader.h


Grub-devel mailing list