Hi Heinrich, On Fri, 24 Sept 2021 at 18:31, Simon Glass <s...@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