A limitation of the EFI loader at present is that it does not build with sandbox. This makes it hard to write tests, since sandbox is used for most testing in U-Boot.
This series enables the EFI loader feature. It allows sandbox to build and run a trivial function which calls the EFI API to output a message. Also included in v8 is support for running the full EFI self tests. These run OK with some tweaks to a few parts of the code. With v9, various EFI patches have been applied which change things. This series includes a partial review of one, which makes 'bootefi test' work. But there are still problems with 'bootefi selftest': As of v10 two selftests fail. I fixed another one in this series. I think have removed all paches not essential to getting things running. The refactoring patches will be sent separately once these are sorted out. $ sandbox/u-boot -D -c "bootefi selftest" ... Executing 'real time clock' /home/sjg/c/src/third_party/u-boot/files/lib/efi_selftest/efi_selftest_rtc.c(46): ERROR: Could not read real time clock /home/sjg/c/src/third_party/u-boot/files/lib/efi_selftest/efi_selftest.c(109): ERROR: Executing 'real time clock' failed Setting up 'simple network protocol' /home/sjg/c/src/third_party/u-boot/files/lib/efi_selftest/efi_selftest_snp.c(209): ERROR: Failed to locate simple network protocol /home/sjg/c/src/third_party/u-boot/files/lib/efi_selftest/efi_selftest.c(84): ERROR: Setting up 'simple network protocol' failed This series is at u-boot-dm/efi-working Changes in v10: - Try to use compiler pre-defines to get the right settings for sandbox - Explain the padding of the returned pointer in the commit message - Add new patch to correct the operation of efi_file_write() - Drop patches not essential to getting things working Changes in v9: - Fix 'thi' typo - Drop fdt_end variable in efi_install_fdt() Changes in v8: - Rebase to master, bringing in all EFI changes - Drop 'efi: sandbox: Add relocation constants' - Drop 'efi: Adjust memory handling to support sandbox' - Drop 'sandbox: smbios: Update to support sandbox' - Expand series substantially to support bootefi selftest - Rebase to master Changes in v7: - Drop an unnecessary comment - Update patch subject s/builder/build/ Changes in v6: - Warn about building sandbox EFI support on something other than __x86_64__ Changes in v4: - Rebase to master - Update SPDX tags Changes in v3: - Init the 'rows' and 'cols' vars to avoid a compiler error (gcc 4.8.4) - Rebase to master Changes in v2: - Rebase to master Alexander Graf (1): efi_loader: Pass address to fs_read() Simon Glass (9): efi: sandbox: Add distroboot support efi: sandbox: Enable EFI loader build for sandbox sandbox: Align RAM buffer to the machine page size sandbox: Add support for calling abort() sandbox: Enhance map_to_sysmem() to handle foreign pointers efi: Relocate FDT to 127MB instead of 128MB efi: sandbox: Tidy up copy_fdt() to work with sandbox efi: Correct the operation of efi_file_write() efi: sandbox: Enable selftest command arch/sandbox/cpu/cpu.c | 141 +++++++++++++++++++++++++++++-- arch/sandbox/cpu/os.c | 12 ++- arch/sandbox/cpu/state.c | 8 ++ arch/sandbox/include/asm/state.h | 21 +++++ cmd/bootefi.c | 83 +++++++++++------- configs/sandbox_defconfig | 1 + include/config_distro_bootcmd.h | 16 ++-- include/os.h | 4 + lib/efi_loader/Kconfig | 2 +- lib/efi_loader/efi_file.c | 5 +- 10 files changed, 241 insertions(+), 52 deletions(-) -- 2.19.0.397.gdd90340f6a-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot