mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 23:50:26 +09:00
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_$(EFI_RELOC) := $(CFLAGS_EFI)
|
||||||
CFLAGS_REMOVE_$(EFI_RELOC) := $(CFLAGS_NON_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)
|
extra-$(CONFIG_EFI) += $(EFI_CRT0) $(EFI_RELOC)
|
||||||
|
@ -66,7 +66,7 @@ LDFLAGS_FINAL += --gc-sections -pie
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO),)
|
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
|
||||||
|
|
||||||
ifneq ($(CONFIG_EFI_STUB_64BIT),)
|
ifneq ($(CONFIG_EFI_STUB_64BIT),)
|
||||||
EFI_LDS := elf_x86_64_efi.lds
|
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
|
endif
|
||||||
|
|
||||||
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO),)
|
ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
|
||||||
extra-y += $(EFI_CRT0) $(EFI_RELOC)
|
extra-y += $(EFI_CRT0) $(EFI_RELOC)
|
||||||
endif
|
endif
|
||||||
|
15
cmd/Kconfig
15
cmd/Kconfig
@ -181,9 +181,22 @@ config CMD_BOOTEFI
|
|||||||
help
|
help
|
||||||
Boot an EFI image from memory.
|
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
|
config CMD_BOOTEFI_HELLO
|
||||||
bool "Allow booting a standard EFI hello world for testing"
|
bool "Allow booting a standard EFI hello world for testing"
|
||||||
depends on CMD_BOOTEFI && (ARM || X86)
|
depends on CMD_BOOTEFI_HELLO_COMPILE
|
||||||
help
|
help
|
||||||
This adds a standard EFI hello world application to U-Boot so that
|
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
|
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=y
|
||||||
CONFIG_EFI_STUB=y
|
CONFIG_EFI_STUB=y
|
||||||
CONFIG_EFI_STUB_64BIT=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_SETEXPR is not set
|
||||||
CONFIG_CMD_TIMER=y
|
CONFIG_CMD_TIMER=y
|
||||||
CONFIG_OF_LIBFDT=y
|
CONFIG_OF_LIBFDT=y
|
||||||
|
# CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
CFLAGS_helloworld.o := $(CFLAGS_EFI)
|
CFLAGS_helloworld.o := $(CFLAGS_EFI)
|
||||||
CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_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-$(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_image_loader.o efi_boottime.o efi_runtime.o efi_console.o
|
||||||
obj-y += efi_memory.o
|
obj-y += efi_memory.o
|
||||||
|
@ -104,7 +104,7 @@ def test_efi_setup_static(u_boot_console):
|
|||||||
global net_set_up
|
global net_set_up
|
||||||
net_set_up = True
|
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):
|
def test_efi_helloworld_net(u_boot_console):
|
||||||
"""Run the helloworld.efi binary via TFTP.
|
"""Run the helloworld.efi binary via TFTP.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user