public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [RFC 0/8] efi_loader: rework bootefi/bootmgr
@ 2019-03-05  5:53 AKASHI Takahiro
  2019-03-05  5:53 ` [U-Boot] [RFC 1/8] efi_loader: boottime: don't add device path protocol to image handle AKASHI Takahiro
                   ` (8 more replies)
  0 siblings, 9 replies; 21+ messages in thread
From: AKASHI Takahiro @ 2019-03-05  5:53 UTC (permalink / raw)
  To: u-boot

There are several reasons that I want to rework/refactor bootefi command
as well as bootmgr:
* Some previous commits on bootefi.c have made the code complicated
  and a bit hard to understand.

* Contrary to the other part, efi_selftest part of the code is unusal
  in terms of loading/execution path in do_bootefi().

* do_bootefi_exec() would better be implemented using load_image() along
  with start_image() to be aligned with UEFI interfaces.

* do_bootmgr_load() should also return a size of image loaded.
  This information will be needed at load_image(0 and also be used to
  verify an image with its signature in "secure boot" in the future.

* When we will support "secure boot" in the future, EFI Boot Manager
  is expected to be invoked as a standalone command without any arguments
  to mitigate security surfaces.

In this patch set,
Patch#1 is a bug fix.
Patch#2 to #5 are preparatory patches for patch#6.
Patch#7 is for standalone boot manager.

The concern that I'm aware of is:
* load_image() will take an argument of "parent_handle," but obviously
  we don't have any parent when invoking an application from command line.
  (See FIXME in patch#6.)

-Takahiro Akashi

AKASHI Takahiro (8):
  efi_loader: boottime: don't add device path protocol to image handle
  efi_loader: boottime: export efi_[un]load_image()
  efi_loader: bootmgr: return pointer and size of buffer in loading
  cmd: bootefi: move do_bootefi_bootmgr_exec() forward
  cmd: bootefi: carve out fdt handling
  cmd: bootefi: carve out efi_selftest code from do_bootefi()
  cmd: bootefi: rework do_bootefi(), using load_image API
  cmd: add efibootmgr command

 cmd/Kconfig                   |   8 +
 cmd/bootefi.c                 | 434 +++++++++++++++++++++++-----------
 include/efi_loader.h          |  14 +-
 lib/efi_loader/efi_bootmgr.c  |  41 ++--
 lib/efi_loader/efi_boottime.c |  39 ++-
 5 files changed, 360 insertions(+), 176 deletions(-)

-- 
2.20.1

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

end of thread, other threads:[~2019-03-27  2:50 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-05  5:53 [U-Boot] [RFC 0/8] efi_loader: rework bootefi/bootmgr AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 1/8] efi_loader: boottime: don't add device path protocol to image handle AKASHI Takahiro
2019-03-05 19:48   ` Heinrich Schuchardt
2019-03-06  0:27     ` AKASHI Takahiro
2019-03-06  5:04       ` Heinrich Schuchardt
2019-03-06  5:29         ` Heinrich Schuchardt
2019-03-27  2:50           ` AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 2/8] efi_loader: boottime: export efi_[un]load_image() AKASHI Takahiro
2019-03-05 20:02   ` Heinrich Schuchardt
2019-03-05  5:53 ` [U-Boot] [RFC 3/8] efi_loader: bootmgr: return pointer and size of buffer in loading AKASHI Takahiro
2019-03-21 11:41   ` Heinrich Schuchardt
2019-03-22  2:08     ` AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 4/8] cmd: bootefi: move do_bootefi_bootmgr_exec() forward AKASHI Takahiro
2019-03-21 11:48   ` Heinrich Schuchardt
2019-03-22  2:16     ` AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 5/8] cmd: bootefi: carve out fdt handling AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 6/8] cmd: bootefi: carve out efi_selftest code from do_bootefi() AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 7/8] cmd: bootefi: rework do_bootefi(), using load_image API AKASHI Takahiro
2019-03-05  5:53 ` [U-Boot] [RFC 8/8] cmd: add efibootmgr command AKASHI Takahiro
2019-03-19  7:23 ` [U-Boot] [RFC 0/8] efi_loader: rework bootefi/bootmgr AKASHI Takahiro
2019-03-21  6:41   ` Heinrich Schuchardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox