[PATCH 00/10] Improve UEFI app support

Simon Glass sjg at chromium.org
Mon Dec 9 00:07:22 CET 2024


Hi Tom,

On Sun, Dec 8, 2024, 08:51 Tom Rini <trini at konsulko.com> wrote:
>
> On Sun, Dec 08, 2024 at 08:28:42AM -0700, Simon Glass wrote:
> > Hi,
> >
> > On Sun, 1 Dec 2024 at 09:15, Simon Glass <sjg at chromium.org> wrote:
> > >
> > > 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.
> >
> > I'm planning to pull this in as this seems like an important use case.
> > I'm not sure how much time Matthew will have for this, and I want to
> > avoid this series going stale.
> >
> > The comments which are not 'why do you want to do this?' are fairly
> > minor, so I'll send a follow-up to resolve them next week. We should
> > also think about what code we could move from lib/efi_loader to
> > lib/efi so we can share it with the app.
> >
> > Matthew, thanks again for sending this. if you are planning to do more
> > here in the short term, please let me know.
>
> Please don't grab other peoples patch series and pick them up for your,
> well, whatever you want to call "ci/master". You can do what you like
> with patches you wrote but taking submissions from others is just going
> to confuse the situation as to if you are, or are not, forking the
> project at this point.

This is a special situation as I had requested the series based on a talk
that I saw. I am interested in building on this work and obviously don't
want to do it on an out-of-tree basis.

I have to say I felt quite uncomfortable at the response we gave this new
contributor. If I had received such a response on my first series to U-Boot
I would never have come back.

I intend to keep the openness to new ideas in the future.

Re the patchwork thing, it was temporary while I was bringing in the
series. It should be fixed now.

Regards,
Simon


More information about the U-Boot mailing list