[PATCH v9 0/9] efi: Improvements to U-Boot running on top of UEFI

Simon Glass sjg at chromium.org
Thu Jan 13 20:39:15 CET 2022


Hi Heinrich,

On Tue, 4 Jan 2022 at 03:51, Simon Glass <sjg at chromium.org> wrote:
>
> At present U-Boot can be built as an EFI app, but it is really just for
> testing, with very few features. Instead, the payload build is used for
> booting on top of UEFI, where U-Boot takes over the machine immediately
> and supplies its own drivers.
>
> But the app could be made more useful.
>
> This series provides access to EFI block devices and the video console
> within U-Boot. It also restructures the app to make it possible to boot
> a kernel, although further work is needed to implement this.
>
> This can be thought of as making U-Boot perform a little like 'grub', in
> that it runs purely based on UEFI-provided services.
>
> Of course a lot more work is required, but this is a start.
>
> Note: It would be very useful to include qemu tests of the app and stub
> in CI.
>
> This is available at u-boot-dm/efi-working
>
> Changes in v9:
> - Add a comment as to why printf() cannot be used
> - Comment out storing the EFI memory map in the app and update commit message
> - Drop changes previously applied
>
> Changes in v8:
> - Add new patch to tidy up header comments
>
> Changes in v7:
> - Rebase on -master instead of -next
>
> Changes in v6:
> - Fix typo in function comment
>
> Changes in v5:
> - Add new patch to avoid using the 64-bit link script for the EFI app
> - Add new patch to build the 64-bit app properly
> - Add new patch to round out the link script for 64-bit EFI
> - Add new patch to set the correct link flags for the 64-bit EFI app
> - Add new patch to tweak the code used for the 64-bit EFI app
> - Add various patches to fix up the 64-bit app so that it boots
>
> Changes in v2:
> - Add a sentence about what the patch does
> - Add new patch to support the efi command in the app
>
> Simon Glass (9):
>   efi: Move exit_boot_services into a function
>   x86: efi: Update efi_get_next_mem_desc() to avoid needing a map
>   efi: Support the efi command in the app
>   x86: efi: Tweak the code used for the 64-bit EFI app
>   x86: efi: Round out the link script for 64-bit EFI
>   x86: efi: Don't use the 64-bit link script for the EFI app
>   x86: efi: Set the correct link flags for the 64-bit EFI app
>   efi: Build the 64-bit app properly
>   efi: Tidy up some comments in efi header
>
>  Makefile                        |  4 +-
>  arch/x86/config.mk              | 15 +++++--
>  arch/x86/cpu/config.mk          |  2 +-
>  arch/x86/cpu/efi/payload.c      |  8 ++--
>  arch/x86/cpu/x86_64/cpu.c       |  5 +++
>  arch/x86/lib/Makefile           |  5 +--
>  arch/x86/lib/elf_x86_64_efi.lds |  5 ++-
>  arch/x86/lib/relocate.c         |  2 +
>  cmd/Makefile                    |  2 +-
>  cmd/efi.c                       | 78 +++++++++++++++++++++------------
>  include/efi.h                   | 64 +++++++++++++++++++++++----
>  lib/efi/efi.c                   | 72 ++++++++++++++++++++++++++++++
>  lib/efi/efi_app.c               | 42 ++++++++++++++++++
>  lib/efi/efi_stub.c              | 66 +++++-----------------------
>  14 files changed, 263 insertions(+), 107 deletions(-)
>
> --
> 2.34.1.448.ga2b2bfdf31-goog
>

Does this series look OK to you now? I'd like to put it to bed.

Regards,
Simon


More information about the U-Boot mailing list