efi/zboot: Enable for 32-bit ARM

Linux on 32-bit ARM already has its own decompressor, so it wasn't a
target for EFI zboot support when it was introduced. However, most of
what it does beyond the actual decompression is redundant when
running in the context of EFI firmware, which already maps all memory
1:1 with the caches enabled, and provides access to a console in a
platform agnostic manner.

So let's add the necessary tweaks to enable the vmlinuz.efi build target
for 32-bit ARM as well. Note that this format only supports EFI boot,
not bare metal boot, although the image header carries sufficient
information for a bare metal bootloader to decompress the image and boot
it without EFI.

Due to the need for cache maintenance to allow the MMU to be disabled
before handing over to the kernel proper, this code only supports ARMv6k
and later.

Note that the existing zImage integration can be built and used as
before after this change.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
9 files changed