Merge tag 'efi-2020-01-rc3' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
Pull request for UEFI sub-system for efi-2020-01-rc3 The following changes for the UEFI subsystem are provided: * allow building UEFI binaries on the sandbox * enable access to file systems without partition tables * correctly check the return value of efi_dp_from_file()
This commit is contained in:
@@ -27,3 +27,31 @@ cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \
|
||||
$(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot-spl.map -Wl,--gc-sections)
|
||||
|
||||
CONFIG_ARCH_DEVICE_TREE := sandbox
|
||||
|
||||
ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds
|
||||
EFI_TARGET := --target=efi-app-x86_64
|
||||
else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds
|
||||
EFI_TARGET := --target=efi-app-ia32
|
||||
else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds
|
||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
|
||||
-j .u_boot_list -j .rela.dyn -j .got -j .got.plt \
|
||||
-j .binman_sym_table -j .text_rest \
|
||||
-j .efi_runtime -j .efi_runtime_rel
|
||||
else ifeq ($(HOST_ARCH),$(HOST_ARCH_ARM))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_arm_efi.lds
|
||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
|
||||
-j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn \
|
||||
-j .binman_sym_table -j .text_rest \
|
||||
-j .efi_runtime -j .efi_runtime_rel
|
||||
else ifeq ($(HOST_ARCH),$(HOST_ARCH_RISCV32))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/riscv/lib/elf_riscv32_efi.lds
|
||||
else ifeq ($(HOST_ARCH),$(HOST_ARCH_RISCV64))
|
||||
EFI_LDS := ${SRCDIR}/../../../arch/riscv/lib/elf_riscv64_efi.lds
|
||||
endif
|
||||
EFI_CRT0 := crt0_sandbox_efi.o
|
||||
EFI_RELOC := reloc_sandbox_efi.o
|
||||
AFLAGS_crt0_sandbox_efi.o += -DHOST_ARCH="$(HOST_ARCH)"
|
||||
CFLAGS_reloc_sandbox_efi.o += -DHOST_ARCH="$(HOST_ARCH)"
|
||||
|
||||
32
arch/sandbox/lib/crt0_sandbox_efi.S
Normal file
32
arch/sandbox/lib/crt0_sandbox_efi.S
Normal file
@@ -0,0 +1,32 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* PE/COFF header for EFI applications
|
||||
*
|
||||
* Copyright (c) 2019 Heinrich Schuchardt
|
||||
*/
|
||||
|
||||
#include <host_arch.h>
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_X86_64
|
||||
#include "../../../arch/x86/lib/crt0_x86_64_efi.S"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_X86
|
||||
#include "../../../arch/x86/lib/crt0_ia32_efi.S"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_AARCH64
|
||||
#include "../../../arch/arm/lib/crt0_aarch64_efi.S"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_ARM
|
||||
#include "../../../arch/arm/lib/crt0_arm_efi.S"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_RISCV32
|
||||
#include "../../../arch/riscv/lib/crt0_riscv_efi.S"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_RISCV64
|
||||
#include "../../../arch/riscv/lib/crt0_riscv_efi.S"
|
||||
#endif
|
||||
32
arch/sandbox/lib/reloc_sandbox_efi.c
Normal file
32
arch/sandbox/lib/reloc_sandbox_efi.c
Normal file
@@ -0,0 +1,32 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* position independent shared object relocator
|
||||
*
|
||||
* Copyright (c) 2019 Heinrich Schuchardt
|
||||
*/
|
||||
|
||||
#include <host_arch.h>
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_X86_64
|
||||
#include "../../../arch/x86/lib/reloc_x86_64_efi.c"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_X86
|
||||
#include "../../../arch/x86/lib/reloc_ia32_efi.c"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_AARCH64
|
||||
#include "../../../arch/arm/lib/reloc_aarch64_efi.c"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_ARM
|
||||
#include "../../../arch/arm/lib/reloc_arm_efi.c"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_RISCV32
|
||||
#include "../../../arch/riscv/lib/reloc_riscv_efi.c"
|
||||
#endif
|
||||
|
||||
#if HOST_ARCH == HOST_ARCH_RISCV64
|
||||
#include "../../../arch/riscv/lib/reloc_riscv_efi.c"
|
||||
#endif
|
||||
Reference in New Issue
Block a user