mbox series

[GIT,PULL] ARM: simplify handover from UEFI to decompressor

Message ID 20200517120959.7191-1-ardb@kernel.org (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] ARM: simplify handover from UEFI to decompressor | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/pr-efi-arm-no-relocate

Message

Ard Biesheuvel May 17, 2020, 12:09 p.m. UTC
The following changes since commit 91e4f3d37e1a932396801fc2831286353821ff23:

  ARM: 8972/1: boot: Obtain start of physical memory from DTB (2020-04-29 13:30:29 +0100)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/pr-efi-arm-no-relocate

for you to fetch changes up to ea98a6da3baf477541f8cbb036d1827e6b84ac91:

  ARM: decompressor: run decompressor in place if loaded via UEFI (2020-05-06 09:58:24 +0200)

----------------------------------------------------------------
Simply EFI handover to decompressor

The EFI stub in the ARM kernel runs in the context of the firmware, which
means it usually runs with the caches and MMU on. Currently, we relocate
the zImage so it appears in the first 128 MiB, disable the MMU and caches
and invoke the decompressor via its ordinary entry point. However, since we
can pass the base of DRAM directly, there is no need to relocate the zImage,
which also means there is no need to disable and re-enable the caches and
create new page tables etc.

----------------------------------------------------------------
Ard Biesheuvel (5):
      ARM: decompressor: move headroom variable out of LC0
      ARM: decompressor: split off _edata and stack base into separate object
      ARM: decompressor: defer loading of the contents of the LC0 structure
      ARM: decompressor: move GOT into .data for EFI enabled builds
      ARM: decompressor: run decompressor in place if loaded via UEFI

 arch/arm/boot/compressed/head.S           | 91 +++++++++++++------------------
 arch/arm/boot/compressed/vmlinux.lds.S    |  5 ++
 drivers/firmware/efi/libstub/arm32-stub.c | 45 ++-------------
 3 files changed, 48 insertions(+), 93 deletions(-)