With this patch series an EFI application or driver can supply a block device which in turn can be used to download an image.
E.g. we can load iPXE, connect iSCSI drives, download grub from the SAN and afterwards with grub download and run an EFI application. Booting Linux from an iSCSI drive was successful on arm64. v2: Add an additional patch to fix ExitBootServices. Provide comments for EFI block driver. Avoid printing when not in debug mode Add product tools/file2include to .gitignore. Put the patch with the test for block io after the patch for the driver. Heinrich Schuchardt (18): efi_loader: return NULL from device path functions efi_loader: address of the simple file system protocol efi_loader: correct find simple file system protocol efi_loader: print device path when entering efi_load_image efi_loader: allocate correct memory type for EFI image efi_loader: check tables in helloworld.efi efi_loader: fix StartImage bootservice efi_loader: efi_disk_register: correctly determine if_type_name efi_loader: make efi_block_io_guid a global symbol efi_loader: provide a function to create a partition node efi_loader: make efi_disk_create_partitions a global symbol efi_loader: correct EFI_BLOCK_IO_PROTOCOL definitions efi_loader: provide function to get last node of a device path efi_loader: provide links between devices EFI handles tools: provide a tool to convert a binary file to an include efi_driver: EFI block driver efi_selftest: provide a test for block io efi_loader: fix ExitBootServices MAINTAINERS | 1 + common/board_r.c | 3 + drivers/block/blk-uclass.c | 4 +- include/blk.h | 1 + include/config_fallbacks.h | 1 + include/dm/device.h | 4 + include/dm/uclass-id.h | 1 + include/efi_api.h | 16 +- include/efi_driver.h | 30 ++ include/efi_loader.h | 21 +- lib/Makefile | 1 + lib/efi_driver/Makefile | 13 + lib/efi_driver/efi_block_device.c | 175 ++++++++++++ lib/efi_driver/efi_uclass.c | 330 ++++++++++++++++++++++ lib/efi_loader/efi_boottime.c | 42 ++- lib/efi_loader/efi_device_path.c | 168 +++++++++--- lib/efi_loader/efi_disk.c | 137 +++++++--- lib/efi_loader/efi_image_loader.c | 64 +++-- lib/efi_loader/helloworld.c | 26 ++ lib/efi_selftest/Makefile | 4 + lib/efi_selftest/efi_selftest_block_device.c | 395 +++++++++++++++++++++++++++ lib/efi_selftest/efi_selftest_disk_image.h | 69 +++++ tools/.gitignore | 1 + tools/Makefile | 3 + tools/file2include.c | 106 +++++++ 25 files changed, 1493 insertions(+), 123 deletions(-) create mode 100644 include/efi_driver.h create mode 100644 lib/efi_driver/Makefile create mode 100644 lib/efi_driver/efi_block_device.c create mode 100644 lib/efi_driver/efi_uclass.c create mode 100644 lib/efi_selftest/efi_selftest_block_device.c create mode 100644 lib/efi_selftest/efi_selftest_disk_image.h create mode 100644 tools/file2include.c -- 2.14.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot