[Concept,00/18] efi: Move towards the EFI app booting EFI applications

Message ID 20250820004039.3920254-1-sjg@u-boot.org
Headers
Series efi: Move towards the EFI app booting EFI applications |

Message

Simon Glass Aug. 20, 2025, 12:40 a.m. UTC
  From: Simon Glass <sjg@chromium.org>

This series adds various new features to the EFI app, mostly by moving
code over from the EFI loader implementation.

In particular it adds support for the efidebug command (with only a
subset of subcommands so far).

The main approach is to make use of the system table (for both the app
and the loader) instead of directly calling EFI-loader code.

It also includes a few fixes, which likely have no effect but will help
to avoid confusion in future.


Simon Glass (18):
  efi: Add missing break statements in dp_size()
  efi: Add missing break to dp_fill()
  efi: Update path_uefi() to avoid allowed_unaligned()
  efi: app: Support the efidebug command
  efi: app: Support efidebug memmap
  efi: app: Support efidebug show tables
  efi: app: Provide easy access to runtime services
  efi: Move a few helper functions into the common efi/ dir
  efi: Move some load-options handling into the common dir
  efi: Move FDT and global-variable GUIDs to common files
  efi: app: Implement efidebug boot dump
  efi: app: Find the device-path-to-text protocol on startup
  efi: app: Implement %pD in the app
  efi: Move efi_string utilities to the common directory
  efi: app: Use the same efi_free_pool() signature as loader
  efi: Move efi_load_option_dp_join() to a common file
  efi: app: Support efidebug boot add, rm and order
  efi: doc: Add documentation for efidebug command in the app

 cmd/Kconfig                                   |  5 +-
 cmd/efidebug.c                                | 43 +++++++--
 doc/develop/uefi/u-boot_on_efi.rst            | 21 +++++
 include/efi.h                                 | 20 +++++
 include/efi_loader.h                          | 11 ---
 lib/efi/Kconfig                               | 12 ++-
 lib/efi/Makefile                              |  3 +
 lib/efi/device_path.c                         | 20 +++--
 lib/efi/helper.c                              | 88 +++++++++++++++++++
 .../efi_load_options.c => efi/load_options.c} |  0
 lib/{efi_loader/efi_string.c => efi/string.c} |  0
 lib/efi_client/efi.c                          | 24 ++++-
 lib/efi_client/efi_app.c                      |  9 ++
 lib/efi_client/efi_vars.c                     | 23 +++--
 lib/efi_loader/Kconfig                        |  7 --
 lib/efi_loader/Makefile                       |  2 -
 lib/efi_loader/efi_boottime.c                 |  7 +-
 lib/efi_loader/efi_helper.c                   | 77 ----------------
 18 files changed, 249 insertions(+), 123 deletions(-)
 create mode 100644 lib/efi/helper.c
 rename lib/{efi_loader/efi_load_options.c => efi/load_options.c} (100%)
 rename lib/{efi_loader/efi_string.c => efi/string.c} (100%)