[PATCH v6 00/12] efi: Add a test for EFI bootmeth

Simon Glass
2024-09-26T22:00:31Z

The test coverage for the EFI bootmeth is incomplete since it does not
actually boot the application.

This series creates a simple test for this purpose. It includes a few
patches to make this work:

- ANSI output from the EFI loader confusing the unit-testing checker
- Hang in sandbox virtio due to EFI probing all block devices

Other necessary fixes have been split out into two other series.

Changes in v6:
- Expand the debug messages to be more descriptive
- Drop the patch to disable sandbox virtio blk with EFI
- Add new patch to disable the sandbox virtio blk device
- Deal with sandbox CONFIG_LOGF_FUNC
- Rebase on -next
- Drop patches previously applied
- Drop mention of helloworld since it is no-longer used by this test

Changes in v5:
- Drop the Fixes tag

Changes in v4:
- Add efi_loader tag to some patches
- Split out non-EFI patches into a different series

Changes in v3:
- Drop the extra- rules since scripts/Makefile.lib takes care of it
- Add new patch to drop crt0/relocal extra- rules
- Put back the Linaro copyright accidentally removed

Changes in v2:
- Reword commit message
- Use 'Firmware vendor' instead of just 'Vendor'
- Add many new patches to resolve all the outstanding test issues

Simon Glass (12):
efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE
efi: arm: x86: riscv: Drop crt0/relocal extra- rules
efi_loader: Shorten the app rules
efi_loader: Shorten the app rules further
efi_loader: Show the vendor in helloworld
efi: Use the same filename for all sandbox builds
bootstd: Add debugging for efi bootmeth
efi_loader: Disable ANSI output for tests
efi_loader: Add a test app
sandbox: virtio: Disable the sandbox virtio blk device
test: efi: boot: Set up an image suitable for EFI testing
test: efi: boot: Add a test for the efi bootmeth

arch/Kconfig | 3 +-
arch/arm/lib/Makefile | 8 ----
arch/riscv/lib/Makefile | 4 --
arch/sandbox/dts/test.dts | 2 +-
arch/x86/lib/Makefile | 16 -------
boot/bootmeth_efi.c | 11 ++++-
cmd/Kconfig | 14 +-----
configs/octeontx2_95xx_defconfig | 2 +-
configs/octeontx2_96xx_defconfig | 2 +-
configs/octeontx_81xx_defconfig | 2 +-
configs/octeontx_83xx_defconfig | 2 +-
doc/develop/uefi/uefi.rst | 2 +-
include/efi_default_filename.h | 24 +---------
include/efi_loader.h | 21 ++++++++-
lib/efi_loader/Kconfig | 22 +++++++++
lib/efi_loader/Makefile | 47 ++++++-------------
lib/efi_loader/efi_console.c | 26 +++++++----
lib/efi_loader/helloworld.c | 3 ++
lib/efi_loader/testapp.c | 68 ++++++++++++++++++++++++++++
test/boot/bootdev.c | 18 +++++++-
test/boot/bootflow.c | 65 +++++++++++++++++++++++++-
test/py/tests/bootstd/flash1.img.xz | Bin 0 -> 5016 bytes
test/py/tests/test_efi_fit.py | 2 +-
test/py/tests/test_efi_loader.py | 2 +-
test/py/tests/test_ut.py | 52 ++++++++++++++++++---
25 files changed, 294 insertions(+), 124 deletions(-)
create mode 100644 lib/efi_loader/testapp.c
create mode 100644 test/py/tests/bootstd/flash1.img.xz

--
2.43.0