[PATCH v2 00/39] efi: Improvements to U-Boot running on top of UEFI
Simon Glass
sjg at chromium.org
Mon Oct 18 17:25:12 CEST 2021
Hi Heinrich,
On Fri, 24 Sept 2021 at 18:31, 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 v2:
> - Add MAINTAINERS entry
> - Add a better boot command too
> - Add a note that EFI_GRAPHICS_OUTPUT_PROTOCOL is used
> - Add a sentence about what the patch does
> - Add a work-around to avoid a toolchain crash
> - Add new patch to drop the OF_EMBED warning for EFI
> - Add new patch to enable DM_ETH for the app
> - Add new patch to support the efi command in the app
> - Add new patch with maintainer entry
> - Add support for creating a partition table with a filesystem inside
> - Add support for running qemu with just a serial console (no display)
> - Drop mention of partitions from the commit message
> - Expand the commit message to make things clearer
> - Fix 'as' typo
> - Mention why this patch is included in this series
> - Put this patch first so that it is separated from the rest of the series
> - Show the correct interface type with 'part list'
> - Update commit message to mention that these function are x86-specific
> - Update commit message to mention why the data structure is like it is
> - Update commit message to mention why ulong is used
> - Update documentation
> - Update the commit message to explain things better
> - Use log_info() instead of printf()
>
> Simon Glass (39):
> RFC: efi: Drop code that doesn't work with driver model
> efi: Add a separate maintainer entry for the app
> x86: Keep symbol information in u-boot ELF file
> x86: Create a new header for EFI
> x86: Show some EFI info with the bdinfo command
> x86: Tidy up global_data pointer for 64-bit
> efi: Add a script for building and testing U-Boot on UEFI
> efi: Enable DM_ETH for the app
> efi: Drop the OF_EMBED warning for EFI
> x86: Create a 32/64-bit selection for the app
> efi: Create a 64-bit app
> x86: Don't duplicate global_ptr in 64-bit EFI app
> efi: Add a way to obtain boot services in the app
> efi: Add video support to the app
> efi: Add EFI uclass for media
> efi: Add a media/block driver for EFI block devices
> efi: Locate all block devices in the app
> patman: Use a ValueError exception if tools.Run() fails
> binman: Report an error if test files fail to compile
> binman: Support reading the offset of an ELF-file symbol
> binman: Allow timeout to occur in the image or its section
> binman: Tidy up comments on _DoTestFile()
> binman: Support updating the dtb in an ELF file
> efi: serial: Support arrow keys
> bloblist: Support allocating the bloblist
> x86: Allow booting a kernel from the EFI app
> x86: Don't process the kernel command line unless enabled
> x86: efi: Add room for the binman definition in the dtb
> efi: Add comments to struct efi_priv
> efi: Fix ll_boot_init() operation with the app
> efi: Add a few comments to the stub
> efi: Share struct efi_priv between the app and stub code
> efi: Move exit_boot_services into a function
> efi: Check for failure when initing the app
> efi: Mention that efi_info_get() is only used in the stub
> efi: Show when allocated pages are used
> efi: Allow easy selection of serial-only operation
> efi: Update efi_get_next_mem_desc() to avoid needing a map
> efi: Support the efi command in the app
>
> MAINTAINERS | 14 +
> Makefile | 10 +-
> arch/sandbox/dts/test.dts | 4 +
> arch/x86/config.mk | 4 +-
> arch/x86/cpu/efi/payload.c | 21 +-
> arch/x86/cpu/intel_common/Makefile | 2 +-
> arch/x86/cpu/u-boot-64.lds | 2 +
> arch/x86/cpu/x86_64/Makefile | 4 +
> arch/x86/cpu/x86_64/cpu.c | 32 +-
> arch/x86/cpu/x86_64/misc.c | 41 +++
> arch/x86/dts/Makefile | 2 +-
> arch/x86/dts/efi-x86_app.dts | 4 +
> arch/x86/include/asm/efi.h | 39 +++
> arch/x86/include/asm/global_data.h | 2 +
> arch/x86/include/asm/zimage.h | 3 -
> arch/x86/lib/Makefile | 1 +
> arch/x86/lib/bdinfo.c | 22 ++
> arch/x86/lib/bootm.c | 11 +-
> arch/x86/lib/zimage.c | 14 +-
> board/efi/Kconfig | 15 +-
> board/efi/efi-x86_app/Kconfig | 6 +-
> board/efi/efi-x86_app/MAINTAINERS | 11 +-
> cmd/Makefile | 2 +-
> cmd/efi.c | 76 +++--
> common/Kconfig | 15 +-
> common/bloblist.c | 16 +-
> common/board_f.c | 8 +-
> ..._app_defconfig => efi-x86_app32_defconfig} | 3 +-
> configs/efi-x86_app64_defconfig | 39 +++
> disk/part.c | 5 +-
> doc/develop/bloblist.rst | 16 +
> doc/develop/uefi/u-boot_on_efi.rst | 74 ++++-
> drivers/block/Kconfig | 33 +++
> drivers/block/Makefile | 4 +
> drivers/block/blk-uclass.c | 2 +-
> drivers/block/efi-media-uclass.c | 15 +
> drivers/block/efi_blk.c | 115 ++++++++
> drivers/block/sb_efi_media.c | 20 ++
> drivers/serial/serial_efi.c | 11 +-
> drivers/video/Kconfig | 2 +-
> drivers/video/efi.c | 45 ++-
> include/configs/efi-x86_app.h | 31 +-
> include/dm/uclass-id.h | 1 +
> include/efi.h | 123 +++++++-
> include/efi_api.h | 15 +
> include/init.h | 2 +-
> lib/efi/Kconfig | 34 ++-
> lib/efi/efi.c | 106 +++++++
> lib/efi/efi_app.c | 276 +++++++++++++++++-
> lib/efi/efi_stub.c | 95 +++---
> lib/efi_driver/Makefile | 2 +-
> lib/efi_loader/Kconfig | 1 +
> lib/efi_loader/efi_device_path.c | 96 ++----
> lib/efi_loader/efi_disk.c | 48 ---
> scripts/build-efi.sh | 188 ++++++++++++
> test/dm/Makefile | 1 +
> test/dm/efi_media.c | 24 ++
> tools/binman/binman.rst | 36 +++
> tools/binman/cmdline.py | 2 +
> tools/binman/control.py | 11 +
> tools/binman/elf.py | 74 ++++-
> tools/binman/elf_test.py | 45 ++-
> tools/binman/ftest.py | 91 +++++-
> tools/binman/test/Makefile | 13 +-
> tools/binman/test/bss_data.c | 2 +-
> tools/binman/test/embed_data.c | 16 +
> tools/binman/test/embed_data.lds | 23 ++
> tools/binman/test/u_boot_binman_embed.c | 13 +
> tools/binman/test/u_boot_binman_embed.lds | 29 ++
> tools/binman/test/u_boot_binman_embed_sm.c | 13 +
> tools/patman/tools.py | 2 +-
> 71 files changed, 1841 insertions(+), 337 deletions(-)
> create mode 100644 arch/x86/cpu/x86_64/misc.c
> create mode 100644 arch/x86/include/asm/efi.h
> create mode 100644 arch/x86/lib/bdinfo.c
> rename configs/{efi-x86_app_defconfig => efi-x86_app32_defconfig} (94%)
> create mode 100644 configs/efi-x86_app64_defconfig
> create mode 100644 drivers/block/efi-media-uclass.c
> create mode 100644 drivers/block/efi_blk.c
> create mode 100644 drivers/block/sb_efi_media.c
> create mode 100755 scripts/build-efi.sh
> create mode 100644 test/dm/efi_media.c
> create mode 100644 tools/binman/test/embed_data.c
> create mode 100644 tools/binman/test/embed_data.lds
> create mode 100644 tools/binman/test/u_boot_binman_embed.c
> create mode 100644 tools/binman/test/u_boot_binman_embed.lds
> create mode 100644 tools/binman/test/u_boot_binman_embed_sm.c
>
> --
> 2.33.0.685.g46640cef36-goog
>
These patches seem to be in your queue. Can you please give me an update?
Thanks,
Simon
More information about the U-Boot
mailing list