[Concept,00/14] efi: app: Support booting an OS

Message ID 20250820144621.1073679-1-sjg@u-boot.org
Headers
Series efi: app: Support booting an OS |

Message

Simon Glass Aug. 20, 2025, 2:46 p.m. UTC
  From: Simon Glass <sjg@chromium.org>

This series completes the work to get the EFI app booting an EFI
application (e.g. Ubuntu):

- efidebug dh now works, and is slightly enhanced
- device paths which refer to the underlying EFI layer can now be
  requested by the app
- a test is provided, for EFI on ARM booting into Ubuntu using the sjg
  lab


Simon Glass (14):
  test/py: Support a timing report when max_count is 0
  efi: Drop EFI_CALL() from efidebug command
  efi: Move driver-binding guid to a common file
  efi: Drop the BS macro with efi debug
  efi: Use a function to obtain boot services in efi debug
  efi: Use a local var for a handle with efidebug dh
  efi: Show the device name only with the EFI loader
  efi: Update efidebug dh to work with the app
  efi: Add the component-name2 protocol to efidebug dh
  efi: Show component names and other info with efidebug dh
  efi: Add device-path support for EFI media devices
  efi: Add a little debugging to calculate_paths()
  efi: app: Allow booting an EFI app
  test: efi: Add a test for the app booting Ubuntu via EFI

 cmd/efidebug.c                |  62 ++++++++++++------
 include/efi.h                 |   3 +
 include/efi_api.h             |  15 +++++
 include/efi_loader.h          |   2 -
 lib/efi/Kconfig               |   2 +-
 lib/efi/device_path.c         | 120 +++++++++++++++++++++++++++++++++-
 lib/efi/run.c                 |   8 ++-
 lib/efi_loader/efi_boottime.c |   8 ++-
 lib/uuid.c                    |   1 +
 test/py/conftest.py           |   5 +-
 test/py/tests/test_distro.py  |  57 ++++++++++++++--
 11 files changed, 251 insertions(+), 32 deletions(-)