[PATCH 00/10] Improve UEFI app support

Heinrich Schuchardt xypron.glpk at gmx.de
Sun Nov 24 15:40:46 CET 2024


On 11/23/24 20:54, Matthew Garrett 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.

Hello Matthew,

Unfortunately from what you write I do not understand what you are missing.

We already have the bootefi command to execute EFI applications
including the EFI stub.

We have support for FIT images including an EFI kernel and a
device-tree. Initrd support could be added here.

Embedding DTBs into the EFI app is something you should implement in the
EFI stub. The EFI stub should invoke the EFI_DT_FIXUP_PROTOCOL after
choosing the device-tree.

Could you, please, elaborate a bit more on you target.

>
>
> Janis Danisevskis (1):
>    Fix efi_bind_block.
>
> Matthew Garrett (9):
>    Add EFI handover support to bootm

This already exists if you enable CONFIG_BOOTM_EFI.

Best regards

Heinrich

>    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
>



More information about the U-Boot mailing list