[U-Boot] [PATCH 00/17] efi_loader: enable EFI driver provided block device

Heinrich Schuchardt xypron.debian at gmx.de
Thu Jan 11 08:06:51 UTC 2018


From: Heinrich Schuchardt <xypron.glpk at gmx.de>

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.
Running helloworld.efi in this configuration was successful.

Currently the Linux kernel crashes when loaded in the same way.
So some work remains.

Heinrich Schuchardt (17):
  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_selftest: provide a test for block io
  efi_driver: EFI block driver

 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                            |  10 +-
 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            | 153 +++++++++++
 lib/efi_driver/efi_uclass.c                  | 318 +++++++++++++++++++++
 lib/efi_loader/efi_boottime.c                |   6 +-
 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/Makefile                               |   3 +
 tools/file2include.c                         | 106 +++++++
 24 files changed, 1424 insertions(+), 115 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



More information about the U-Boot mailing list