Re: [U-Boot] [PATCH v4 00/14] efi: x86: Add EFI hello world and loader support for x86
Resend attempt... On 7 November 2016 at 08:47, Simon Glasswrote: > This series adds EFI loader support for x86. Since U-Boot already supports > running as an EFI app (and as a payload) this is relatively > straightforward, requiring just moving files into place and updating a few > compiler flags. > > One problem with the EFI loader is that it lacks even rudimentary test > support within U-Boot. At present the only way to test it is to boot an > EFI application. As a step towards correcting this, this series also adds > support for a 'hello world' test program which can be used to make sure > that EFI loader support works correctly on a supported architecture. It is > only a very simple program (it makes just two API calls!) but it does > provide a sanity check and can be expanded as needed. > > No attempt is made to create a pytest with this, but it should be fairly > straightforward to do so. > > Changes in v4: > - Move hello world test program into new patch > - Add new patch to add EFI app support > - Add new patch to add EFI app support on aarch64 > - Use the build-generated 'hello world' program instead of a binary blob > - Add new patch to adjust EFI files support efi_loader > - Drop the binary 'hello world' program > > Changes in v3: > - Include a link to the program instead of adding it to the tree > - Fix several typos > - Align backslashes to the same column > > Changes in v2: > - Add new patch to tidy up selection of building the EFI stub > - Remove EFI support from README.x86 TODO list > > Simon Glass (14): > x86: Correct a build warning in x86 tables > efi: Correct cache flush alignment > efi: Fix debug message address format > x86: Tidy up selection of building the EFI stub > efi: Makefile: Export variables for use with EFI > efi: Add support for a hello world test program > elf: arm: Add a few ARM relocation types > efi: arm: Add EFI app support > efi: arm: Add aarch64 EFI app support > efi: arm: Enable the hello world test program > x86: Move efi .lds files into the 'lib' directory > x86: Move efi .S files into the 'lib' directory > efi: x86: Adjust EFI files support efi_loader > x86: Enable EFI loader support > > Makefile | 11 +- > arch/arm/config.mk | 7 ++ > arch/arm/cpu/armv8/config.mk | 4 + > arch/arm/lib/Makefile | 10 ++ > arch/arm/lib/crt0_aarch64_efi.S| 135 > arch/arm/lib/crt0_arm_efi.S| 138 > + > arch/arm/lib/elf_aarch64_efi.lds | 70 +++ > arch/arm/lib/elf_arm_efi.lds | 70 +++ > arch/arm/lib/reloc_aarch64_efi.c | 87 + > arch/arm/lib/reloc_arm_efi.c | 66 ++ > arch/arm/lib/relocate.S| 3 +- > arch/arm/lib/relocate_64.S | 3 +- > arch/x86/config.mk | 20 ++- > arch/x86/lib/Makefile | 23 > .../lib/{efi/crt0-efi-ia32.S => crt0_ia32_efi.S} | 0 > .../{efi/crt0-efi-x86_64.S => crt0_x86_64_efi.S} | 0 > arch/x86/lib/efi/Makefile | 18 --- > arch/x86/{cpu/efi => lib}/elf_ia32_efi.lds | 2 - > arch/x86/{cpu/efi => lib}/elf_x86_64_efi.lds | 2 - > .../x86/lib/{efi/reloc_ia32.c => reloc_ia32_efi.c} | 0 > .../lib/{efi/reloc_x86_64.c => reloc_x86_64_efi.c} | 0 > arch/x86/lib/tables.c | 2 + > cmd/Kconfig| 10 ++ > cmd/bootefi.c | 29 +++-- > configs/efi-x86_defconfig | 1 + > configs/qemu-x86_efi_payload64_defconfig | 1 + > configs/stm32f429-discovery_defconfig | 1 + > doc/README.efi | 22 > doc/README.x86 | 1 - > include/asm-generic/sections.h | 2 + > include/efi.h | 7 +- > include/elf.h | 13 ++ > lib/efi/Makefile | 4 +- > lib/efi_loader/Kconfig | 2 +- > lib/efi_loader/Makefile| 4 + > lib/efi_loader/efi_image_loader.c | 3 +- > lib/efi_loader/helloworld.c| 24 > scripts/Makefile.lib | 33 + > 38 files changed, 787 insertions(+), 41 deletions(-) > create mode 100644 arch/arm/lib/crt0_aarch64_efi.S > create mode 100644 arch/arm/lib/crt0_arm_efi.S > create mode 100644 arch/arm/lib/elf_aarch64_efi.lds > create mode 100644 arch/arm/lib/elf_arm_efi.lds > create mode 100644
[U-Boot] [PATCH v4 00/14] efi: x86: Add EFI hello world and loader support for x86
This series adds EFI loader support for x86. Since U-Boot already supports running as an EFI app (and as a payload) this is relatively straightforward, requiring just moving files into place and updating a few compiler flags. One problem with the EFI loader is that it lacks even rudimentary test support within U-Boot. At present the only way to test it is to boot an EFI application. As a step towards correcting this, this series also adds support for a 'hello world' test program which can be used to make sure that EFI loader support works correctly on a supported architecture. It is only a very simple program (it makes just two API calls!) but it does provide a sanity check and can be expanded as needed. No attempt is made to create a pytest with this, but it should be fairly straightforward to do so. Changes in v4: - Move hello world test program into new patch - Add new patch to add EFI app support - Add new patch to add EFI app support on aarch64 - Use the build-generated 'hello world' program instead of a binary blob - Add new patch to adjust EFI files support efi_loader - Drop the binary 'hello world' program Changes in v3: - Include a link to the program instead of adding it to the tree - Fix several typos - Align backslashes to the same column Changes in v2: - Add new patch to tidy up selection of building the EFI stub - Remove EFI support from README.x86 TODO list Simon Glass (14): x86: Correct a build warning in x86 tables efi: Correct cache flush alignment efi: Fix debug message address format x86: Tidy up selection of building the EFI stub efi: Makefile: Export variables for use with EFI efi: Add support for a hello world test program elf: arm: Add a few ARM relocation types efi: arm: Add EFI app support efi: arm: Add aarch64 EFI app support efi: arm: Enable the hello world test program x86: Move efi .lds files into the 'lib' directory x86: Move efi .S files into the 'lib' directory efi: x86: Adjust EFI files support efi_loader x86: Enable EFI loader support Makefile | 11 +- arch/arm/config.mk | 7 ++ arch/arm/cpu/armv8/config.mk | 4 + arch/arm/lib/Makefile | 10 ++ arch/arm/lib/crt0_aarch64_efi.S| 135 arch/arm/lib/crt0_arm_efi.S| 138 + arch/arm/lib/elf_aarch64_efi.lds | 70 +++ arch/arm/lib/elf_arm_efi.lds | 70 +++ arch/arm/lib/reloc_aarch64_efi.c | 87 + arch/arm/lib/reloc_arm_efi.c | 66 ++ arch/arm/lib/relocate.S| 3 +- arch/arm/lib/relocate_64.S | 3 +- arch/x86/config.mk | 20 ++- arch/x86/lib/Makefile | 23 .../lib/{efi/crt0-efi-ia32.S => crt0_ia32_efi.S} | 0 .../{efi/crt0-efi-x86_64.S => crt0_x86_64_efi.S} | 0 arch/x86/lib/efi/Makefile | 18 --- arch/x86/{cpu/efi => lib}/elf_ia32_efi.lds | 2 - arch/x86/{cpu/efi => lib}/elf_x86_64_efi.lds | 2 - .../x86/lib/{efi/reloc_ia32.c => reloc_ia32_efi.c} | 0 .../lib/{efi/reloc_x86_64.c => reloc_x86_64_efi.c} | 0 arch/x86/lib/tables.c | 2 + cmd/Kconfig| 10 ++ cmd/bootefi.c | 29 +++-- configs/efi-x86_defconfig | 1 + configs/qemu-x86_efi_payload64_defconfig | 1 + configs/stm32f429-discovery_defconfig | 1 + doc/README.efi | 22 doc/README.x86 | 1 - include/asm-generic/sections.h | 2 + include/efi.h | 7 +- include/elf.h | 13 ++ lib/efi/Makefile | 4 +- lib/efi_loader/Kconfig | 2 +- lib/efi_loader/Makefile| 4 + lib/efi_loader/efi_image_loader.c | 3 +- lib/efi_loader/helloworld.c| 24 scripts/Makefile.lib | 33 + 38 files changed, 787 insertions(+), 41 deletions(-) create mode 100644 arch/arm/lib/crt0_aarch64_efi.S create mode 100644 arch/arm/lib/crt0_arm_efi.S create mode 100644 arch/arm/lib/elf_aarch64_efi.lds create mode 100644 arch/arm/lib/elf_arm_efi.lds create mode 100644 arch/arm/lib/reloc_aarch64_efi.c create mode 100644 arch/arm/lib/reloc_arm_efi.c rename arch/x86/lib/{efi/crt0-efi-ia32.S => crt0_ia32_efi.S} (100%) rename arch/x86/lib/{efi/crt0-efi-x86_64.S => crt0_x86_64_efi.S} (100%) rename arch/x86/{cpu/efi => lib}/elf_ia32_efi.lds (98%) rename