[PATCH 00/10] Improve UEFI app support

Simon Glass sjg at chromium.org
Sun Dec 1 17:15:12 CET 2024


Hi Matthew,

On Sat, 23 Nov 2024 at 12:56, Matthew Garrett <mjg59 at srcf.ucam.org> wrote:
>
> We run a mixed environment including traditional embedded Linux and
> UEFI. For consistency it's valuable to use U-Boot in both cases, but on
> UEFI systems we want to run the full Linux kernel UEFI boot stub. This
> patchset adds support for that, along with various other quality-of-life
> improvements such as automatically finding partitions based on their
> GUID, automatic identification of load addresses where the firmware has
> given us constraints, support for EFI variable access in the EFI app,
> drivers for EFI network adapters and TPMs, support for embedding DTBs in
> the EFI app, and a couple of bug fixes.
>
>
> Janis Danisevskis (1):
>   Fix efi_bind_block.
>
> Matthew Garrett (9):
>   Add EFI handover support to bootm
>   Add part_find command
>   Add a command to find a load address
>   Hook up EFI env variable support in the EFI app
>   Add EFI network driver
>   Add UEFI TPM2 driver
>   Support separate DTB files with the UEFI app
>   Use the correct ramdisk address
>   Add command to set an environment variable to an EFI variable
>
>  Makefile                        |   7 +-
>  arch/x86/config.mk              |   2 +-
>  arch/x86/lib/bootm.c            |  60 ++++++++----
>  arch/x86/lib/elf_x86_64_efi.lds |   4 +
>  boot/bootm.c                    |   5 +
>  cmd/Kconfig                     |  23 ++++-
>  cmd/Makefile                    |   3 +
>  cmd/addr_find.c                 |  87 +++++++++++++++++
>  cmd/efigetenv.c                 | 133 ++++++++++++++++++++++++++
>  cmd/part_find.c                 | 156 ++++++++++++++++++++++++++++++
>  drivers/net/Kconfig             |   7 ++
>  drivers/net/Makefile            |   1 +
>  drivers/net/efi_net.c           | 110 +++++++++++++++++++++
>  drivers/tpm/Kconfig             |   7 ++
>  drivers/tpm/Makefile            |   1 +
>  drivers/tpm/tpm2_efi.c          |  97 +++++++++++++++++++
>  include/asm-generic/sections.h  |   1 +
>  include/bootm.h                 |   6 ++
>  include/efi.h                   |  24 +++++
>  include/efi_tcg2.h              |   1 +
>  lib/efi/Makefile                |   2 +-
>  lib/efi/efi.c                   |   1 +
>  lib/efi/efi_app.c               |  41 ++++++++
>  lib/efi/efi_app_init.c          | 163 ++++++++++++++++++++++++++++++--
>  lib/efi/efi_dtb.S               |   6 ++
>  lib/efi/efi_vars.c              |  44 +++++++++
>  lib/fdtdec.c                    |   3 +
>  27 files changed, 967 insertions(+), 28 deletions(-)
>  create mode 100644 cmd/addr_find.c
>  create mode 100644 cmd/efigetenv.c
>  create mode 100644 cmd/part_find.c
>  create mode 100644 drivers/net/efi_net.c
>  create mode 100644 drivers/tpm/tpm2_efi.c
>  create mode 100644 lib/efi/efi_dtb.S
>  create mode 100644 lib/efi/efi_vars.c
>
> --
> 2.47.0
>

Thank you for sending this and for your interesting talk at plumbers.
It is a novel approach and potentially provides an alternative to grub
and EFI_LOADER, etc.

I'd like to try getting this running in CI as we don't have any such
tests for the app or payload at present.

Regards,
Simon


More information about the U-Boot mailing list