[PATCH 4/6] arm64: add EFI stub
Arnd Bergmann
arnd at arndb.de
Mon Jan 13 13:49:38 EST 2014
On Friday 10 January 2014, Mark Salter wrote:
> This patch adds PE/COFF header fields to the start of the Image
> so that it appears as an EFI application to EFI firmware. An EFI
> stub is included to allow direct booting of the kernel Image. Due
> to EFI firmware limitations, only little endian kernels with 4K
> page sizes are supported at this time. Support in the COFF header
> for signed images was provided by Ard Biesheuvel.
>
> Signed-off-by: Mark Salter <msalter at redhat.com>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
You got the ordering of the S-o-b lines wrong. Since you send the
patch, your name should come last.
> +config EFI_STUB
> + bool "EFI stub support"
> + depends on !ARM64_64K_PAGES && OF
> + select LIBFDT
> + default y
> + help
> + This kernel feature allows an Image to be loaded directly
> + by EFI firmware without the use of a bootloader.
> + See Documentation/efi-stub.txt for more information.
> +
> endmenu
Why not ARM64_64K_PAGES? I thought that it was going to be the
default for a lot of distros that would need to run on UEFI systems.
> menu "Userspace binary formats"
> diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
> index 5ba2fd4..1c52b84 100644
> --- a/arch/arm64/kernel/Makefile
> +++ b/arch/arm64/kernel/Makefile
> @@ -4,6 +4,8 @@
>
> CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
> AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
> +CFLAGS_efi-stub.o := -DTEXT_OFFSET=$(TEXT_OFFSET) \
> + -I$(src)/../../../scripts/dtc/libfdt
Hmm, this is pretty ugly. I notice the same has been done on MIPS
as well, but I'd hope we can find a proper way to do it.
> diff --git a/arch/arm64/kernel/efi-stub.c b/arch/arm64/kernel/efi-stub.c
> new file mode 100644
> index 0000000..10d02bf
> --- /dev/null
> +++ b/arch/arm64/kernel/efi-stub.c
> +
> +/* Include shared EFI stub code */
> +#include "../../../drivers/firmware/efi/efi-stub-helper.c"
> +#include "../../../drivers/firmware/efi/fdt.c"
It gets worse here.
Arnd
More information about the linux-arm-kernel
mailing list