efi_loader: Allow to compile helloworld.efi w/o bundling it
Today we can compile a self-contained hello world efi test binary that allows us to quickly verify whether the EFI loader framwork works. We can use that binary outside of the self-contained test case though, by providing it to a to-be-tested system via tftp. This patch separates compilation of the helloworld.efi file from including it in the u-boot binary for "bootefi hello". It also modifies the efi_loader test case to enable travis to pick up the compiled file. Because we're now no longer bloating the resulting u-boot binary, we can enable compilation always, giving us good travis test coverage. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
4ca4b265ad
commit
95b62b2e28
@ -100,5 +100,5 @@ CFLAGS_REMOVE_$(EFI_CRT0) := $(CFLAGS_NON_EFI)
|
||||
CFLAGS_$(EFI_RELOC) := $(CFLAGS_EFI)
|
||||
CFLAGS_REMOVE_$(EFI_RELOC) := $(CFLAGS_NON_EFI)
|
||||
|
||||
extra-$(CONFIG_CMD_BOOTEFI_HELLO) += $(EFI_CRT0) $(EFI_RELOC)
|
||||
extra-$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE) += $(EFI_CRT0) $(EFI_RELOC)
|
||||
extra-$(CONFIG_EFI) += $(EFI_CRT0) $(EFI_RELOC)
|
||||
|
@ -66,7 +66,7 @@ LDFLAGS_FINAL += --gc-sections -pie
|
||||
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO),)
|
||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
|
||||
|
||||
ifneq ($(CONFIG_EFI_STUB_64BIT),)
|
||||
EFI_LDS := elf_x86_64_efi.lds
|
||||
|
@ -64,6 +64,6 @@ extra-$(CONFIG_EFI_STUB_64BIT) += crt0_x86_64_efi.o reloc_x86_64_efi.o
|
||||
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO),)
|
||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
|
||||
extra-y += $(EFI_CRT0) $(EFI_RELOC)
|
||||
endif
|
||||
|
15
cmd/Kconfig
15
cmd/Kconfig
@ -181,9 +181,22 @@ config CMD_BOOTEFI
|
||||
help
|
||||
Boot an EFI image from memory.
|
||||
|
||||
config CMD_BOOTEFI_HELLO_COMPILE
|
||||
bool "Compile a standard EFI hello world binary for testing"
|
||||
depends on CMD_BOOTEFI && (ARM || X86)
|
||||
default y
|
||||
help
|
||||
This compiles a standard EFI hello world application with U-Boot so
|
||||
that it can be used with the test/py testing framework. This is useful
|
||||
for testing that EFI is working at a basic level, and for bringing
|
||||
up EFI support on a new architecture.
|
||||
|
||||
No additional space will be required in the resulting U-Boot binary
|
||||
when this option is enabled.
|
||||
|
||||
config CMD_BOOTEFI_HELLO
|
||||
bool "Allow booting a standard EFI hello world for testing"
|
||||
depends on CMD_BOOTEFI && (ARM || X86)
|
||||
depends on CMD_BOOTEFI_HELLO_COMPILE
|
||||
help
|
||||
This adds a standard EFI hello world application to U-Boot so that
|
||||
it can be used with the 'bootefi hello' command. This is useful
|
||||
|
@ -52,3 +52,4 @@ CONFIG_USE_PRIVATE_LIBGCC=y
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_STUB=y
|
||||
CONFIG_EFI_STUB_64BIT=y
|
||||
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
|
||||
|
@ -10,3 +10,4 @@ CONFIG_SYS_PROMPT="U-Boot > "
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_TIMER=y
|
||||
CONFIG_OF_LIBFDT=y
|
||||
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
|
||||
|
@ -10,6 +10,9 @@
|
||||
CFLAGS_helloworld.o := $(CFLAGS_EFI)
|
||||
CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_EFI)
|
||||
|
||||
efiprogs-$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE) += helloworld.efi
|
||||
always := $(efiprogs-y)
|
||||
|
||||
obj-$(CONFIG_CMD_BOOTEFI_HELLO) += helloworld_efi.o
|
||||
obj-y += efi_image_loader.o efi_boottime.o efi_runtime.o efi_console.o
|
||||
obj-y += efi_memory.o
|
||||
|
@ -104,7 +104,7 @@ def test_efi_setup_static(u_boot_console):
|
||||
global net_set_up
|
||||
net_set_up = True
|
||||
|
||||
@pytest.mark.buildconfigspec('cmd_bootefi_hello')
|
||||
@pytest.mark.buildconfigspec('cmd_bootefi_hello_compile')
|
||||
def test_efi_helloworld_net(u_boot_console):
|
||||
"""Run the helloworld.efi binary via TFTP.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user