diff options
author | Simon Glass <sjg@chromium.org> | 2016-11-07 08:47:08 -0700 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2016-11-14 23:24:03 +0100 |
commit | c7ae3dfdccc171543804d6577ee41ab03e7a09bc (patch) | |
tree | ec3307e4f3a686ba6972b1785e6a3f9d488e5af1 /scripts | |
parent | bb1ae55948377b6b75d2230fd8fea69106477d81 (diff) | |
download | u-boot-imx-c7ae3dfdccc171543804d6577ee41ab03e7a09bc.zip u-boot-imx-c7ae3dfdccc171543804d6577ee41ab03e7a09bc.tar.gz u-boot-imx-c7ae3dfdccc171543804d6577ee41ab03e7a09bc.tar.bz2 |
efi: Add support for a hello world test program
It is useful to have a basic sanity check for EFI loader support. Add a
'bootefi hello' command which loads HelloWord.efi and runs it under U-Boot.
Signed-off-by: Simon Glass <sjg@chromium.org>
[agraf: Fix documentation, add unfulfilled kconfig dep]
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.lib | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 45a0e1d..956a8a9 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -321,6 +321,39 @@ cmd_S_ttf= \ $(obj)/%.S: $(src)/%.ttf $(call cmd,S_ttf) +# EFI Hello World application +# --------------------------------------------------------------------------- + +# Generate an assembly file to wrap the EFI app +cmd_S_efi= \ +( \ + echo '.section .rodata.efi.init,"a"'; \ + echo '.balign 16'; \ + echo '.global __efi_hello_world_begin'; \ + echo '__efi_hello_world_begin:'; \ + echo '.incbin "$<" '; \ + echo '__efi_hello_world_end:'; \ + echo '.global __efi_hello_world_end'; \ + echo '.balign 16'; \ +) > $@ + +$(obj)/%_efi.S: $(obj)/%.efi + $(call cmd,S_efi) + +$(obj)/%.efi: $(obj)/%.so + $(OBJCOPY) -j .header -j .text -j .sdata -j .data -j .dynamic \ + -j .dynsym -j .rel* -j .rela* -j .reloc \ + $(if $(EFI_TARGET),$(EFI_TARGET),-O binary) $^ $@ + +EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS) + +$(obj)/helloworld.so: $(EFI_LDS_PATH) + +$(obj)/helloworld.so: $(obj)/helloworld.o arch/$(ARCH)/lib/$(EFI_CRT0) \ + arch/$(ARCH)/lib/$(EFI_RELOC) + $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared -Bsymbolic \ + $^ -o $@ + # ACPI # --------------------------------------------------------------------------- quiet_cmd_acpi_c_asl= ASL $< |