All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 00/13] cmd: bootefi: refactor the code for bootmgr
@ 2023-10-26  5:30 AKASHI Takahiro
  2023-10-26  5:30 ` [RFC 01/13] cmd: bootefi: unfold do_bootefi_image() AKASHI Takahiro
                   ` (13 more replies)
  0 siblings, 14 replies; 31+ messages in thread
From: AKASHI Takahiro @ 2023-10-26  5:30 UTC (permalink / raw)
  To: trini, sjg, xypron.glpk, ilias.apalodimas
  Cc: jbx6244, u-boot, AKASHI Takahiro

This patch set is motivated by the discussion[1] regarding
CONFIG_BOOTEFI_BOOTMGR option.

At the end, bootefi.c will be decomposed into two parts, one for
providing the command itself and one for implementing helper functions.
EFI_LOADER will now be available without CONFIG_CMDLINE or specifically
CONFIG_CMD_BOOTEFI if invoked via bootmeth/bootstd.

Then, EFI_LOADER library side will be further split into two options
for fine-grain control:
CONFIG_EFI_BINARY_EXEC: execute UEFI binaries which are to be explicitly
    loaded by U-Boot's load commands/functions or other methods
    (like a jtag debugger?)
    It supports bootmeth_efi as well as "bootefi <addr>|hello"(/"bootm"?).

CONFIG_EFI_BOOTMGR: provide EFI boot manger functionality
    It supports bootmeth_efi_mgr as well as "bootefi bootmgr".

As such, We will no longer need CONFIG_BINARY_EXEC if we want to only
make use of the boot manger for booting a next stage OS.

Prerequisite
============
This patch set is based on top of Simon/Tom's [2].

Patches
=======
Patch#1-#11: I hope that those commits show step-by-step refactoring
    without introducing degradation.
Patch#12-#13: Those are not directly related to the patch's aim, but
    they are necessary to compile U-Boot on sandbox (sandbox_defconfig)
    without CONFIG_CMDLINE.

[1] https://lists.denx.de/pipermail/u-boot/2023-October/534598.html
[2] origin/TEST/v4.1-tidy-up-use-of-CONFIG_CMDLINE

AKASHI Takahiro (13):
  cmd: bootefi: unfold do_bootefi_image()
  cmd: bootefi: re-organize do_bootefi_image()
  cmd: bootefi: carve out EFI boot manager interface
  cmd: bootefi: carve out binary execution interface
  cmd: bootefi: move library interfaces under lib/efi_loader
  cmd: efidebug: ease efi configuration dependency
  bootmeth: use efi_loader interfaces instead of bootefi command
  efi_loader: split unrelated code from efi_bootmgr.c
  efi_loader: rename BOOTEFI_BOOTMGR to EFI_BOOTMGR
  net: tftp: remove explicit efi configuration dependency
  fs: remove explicit efi configuration dependency
  lib: uuid: move CONFIG_RANDOM_UUID
  block: rkmtd: select CONFIG_RANDOM_UUID explicitly

 boot/Kconfig                     |   4 +-
 boot/Makefile                    |   2 +-
 boot/bootm_os.c                  |  31 +-
 boot/bootmeth_efi.c              |   8 +-
 boot/bootmeth_efi_mgr.c          |   3 +-
 cmd/Kconfig                      |  28 +-
 cmd/bootefi.c                    | 658 +++++--------------------------
 cmd/efidebug.c                   |   4 +-
 drivers/block/Kconfig            |   1 +
 fs/fs.c                          |   7 +-
 include/efi_loader.h             |  34 +-
 lib/Kconfig                      |   7 +
 lib/efi_loader/Kconfig           |  11 +-
 lib/efi_loader/Makefile          |   2 +-
 lib/efi_loader/efi_bootmgr.c     |  37 ++
 lib/efi_loader/efi_device_path.c |   3 +-
 lib/efi_loader/efi_helper.c      | 486 ++++++++++++++++++++++-
 net/tftp.c                       |  10 +-
 test/boot/bootflow.c             |   2 +-
 19 files changed, 697 insertions(+), 641 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2023-10-30  0:34 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-26  5:30 [RFC 00/13] cmd: bootefi: refactor the code for bootmgr AKASHI Takahiro
2023-10-26  5:30 ` [RFC 01/13] cmd: bootefi: unfold do_bootefi_image() AKASHI Takahiro
2023-10-26 11:01   ` Heinrich Schuchardt
2023-10-27  0:25     ` AKASHI Takahiro
2023-10-27  1:00       ` Tom Rini
2023-10-27 12:23         ` Ilias Apalodimas
2023-10-30  0:34           ` AKASHI Takahiro
2023-10-26  5:30 ` [RFC 02/13] cmd: bootefi: re-organize do_bootefi_image() AKASHI Takahiro
2023-10-26 10:44   ` Heinrich Schuchardt
2023-10-26 12:47     ` Tom Rini
2023-10-27  0:35     ` AKASHI Takahiro
2023-10-26  5:30 ` [RFC 03/13] cmd: bootefi: carve out EFI boot manager interface AKASHI Takahiro
2023-10-26  5:30 ` [RFC 04/13] cmd: bootefi: carve out binary execution interface AKASHI Takahiro
2023-10-26  5:30 ` [RFC 05/13] cmd: bootefi: move library interfaces under lib/efi_loader AKASHI Takahiro
2023-10-26  5:30 ` [RFC 06/13] cmd: efidebug: ease efi configuration dependency AKASHI Takahiro
2023-10-26  5:30 ` [RFC 07/13] bootmeth: use efi_loader interfaces instead of bootefi command AKASHI Takahiro
2023-10-26  5:30 ` [RFC 08/13] efi_loader: split unrelated code from efi_bootmgr.c AKASHI Takahiro
2023-10-26  5:30 ` [RFC 09/13] efi_loader: rename BOOTEFI_BOOTMGR to EFI_BOOTMGR AKASHI Takahiro
2023-10-26  5:30 ` [RFC 10/13] net: tftp: remove explicit efi configuration dependency AKASHI Takahiro
2023-10-26  5:30 ` [RFC 11/13] fs: " AKASHI Takahiro
2023-10-26  7:58   ` Heinrich Schuchardt
2023-10-26  8:48     ` AKASHI Takahiro
2023-10-26 12:47       ` Tom Rini
2023-10-27  0:59         ` AKASHI Takahiro
2023-10-27  1:04           ` Tom Rini
2023-10-26  5:30 ` [RFC 12/13] lib: uuid: move CONFIG_RANDOM_UUID AKASHI Takahiro
2023-10-26 12:47   ` Tom Rini
2023-10-27 12:24   ` Ilias Apalodimas
2023-10-26  5:30 ` [RFC 13/13] block: rkmtd: select CONFIG_RANDOM_UUID explicitly AKASHI Takahiro
2023-10-26 12:47   ` Tom Rini
2023-10-26 12:47 ` [RFC 00/13] cmd: bootefi: refactor the code for bootmgr Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.