[PATCH 0/8 v2] Change logic of EFI LoadFile2 protocol for initrd loading

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Dec 30 16:07:12 CET 2020


Hi!

This is v2 of [1].

There's been a couple of changes regarding where we install the protocol. 
The initial patchset was completely disregarding BootNext, so that's taken 
into account now and we can use the new feature. 
This brought a few changes on the selftests as well, since we now use the 
loaded image handle to install the protocol, as a consequence the custom 
handle in the tests is now uninstalled during the test .teardown(), but 
the overall approach remains identical.

Changes since v1:
- Use efi_create_indexed_name() instead of open coding it. An extra
  patch has been applied to efi_create_indexed_name() to ensure the
  destination buffer is big enough for our variable name.
- Install the protocol during do_efibootmgr() on the loaded image
  handle and adjust selftests accordingly. The protocol will be 
  uninstalled if efi_exit() is called from and EFI app now.
- Make sure strings are null terminated in efi_helper.c
- Added documentation in uefi.rst describing the new feature.

[1] https://lists.denx.de/pipermail/u-boot/2020-December/436080.html

Ilias Apalodimas (8):
  efi_loader: Remove unused headers from efi_load_initrd.c
  efi_loader: Remove unconditional installation of file2 protocol for
    initrd
  efi_loader: Add size checks to efi_create_indexed_name()
  efi_loader: Introduce helper functions for EFI
  efi_loader: bootmgr: Use get_var from efi_helper file
  efi_loader: Replace config option with EFI variable for initrd loading
  efi_selftest: Modify self-tests for initrd loading via Loadfile2
  doc: uefi: Add instruction for initrd loading

 cmd/bootefi.c                               |  13 ++
 doc/uefi/uefi.rst                           |  15 ++
 include/efi_helper.h                        |  28 +++
 include/efi_loader.h                        |   5 +-
 lib/efi_loader/Kconfig                      |  13 +-
 lib/efi_loader/Makefile                     |   2 +-
 lib/efi_loader/efi_bootmgr.c                |  37 +---
 lib/efi_loader/efi_helper.c                 | 180 ++++++++++++++++++++
 lib/efi_loader/efi_load_initrd.c            | 101 ++++-------
 lib/efi_loader/efi_setup.c                  |   5 -
 lib/efi_loader/efi_string.c                 |  10 +-
 lib/efi_selftest/efi_selftest_load_initrd.c | 100 ++++++++++-
 test/unicode_ut.c                           |   2 +-
 13 files changed, 384 insertions(+), 127 deletions(-)
 create mode 100644 include/efi_helper.h
 create mode 100644 lib/efi_loader/efi_helper.c

-- 
2.30.0



More information about the U-Boot mailing list