[U-Boot] [PATCH 00/23] efi_loader implement missing functions

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Aug 26 22:51:01 UTC 2017


This patch sequence contains all patches needed to load
iPXE and use it for downloading and executing images
via https or http or to mount iSCSI volumes.

Network speed on an Odroid C2 reached 30 MB/s which should be
enough for most use cases.

I have tested the following iPXE commands successfully
* dhcp
* route
* ntp
* sanhook iSCSI-target
* chain http-target
* kernel http-target
* boot (after calling kernel)
* exit
* reboot

The only adjustment in iPXE was adding file src/config/local/nap.h with
  #undef NAP_EFIX86
  #undef NAP_EFIARM
  #define NAP_NULL
and src/config/local/myscript.ipxe with
  #!ipxe
  shell
before building iPXE with
  make bin-arm64-efi/snp.efi EMBED=config/local/myscript.ipxe

The next task will be to put iXPE binaries on a server
and to create Travis CI test cases.

Heinrich Schuchardt (23):
  efi_loader: allow return value in EFI_CALL
  efi_loader: notify when ExitBootServices is invoked
  efi_loader: support 16 protocols per efi_object
  efi_loader: rework efi_locate_handle
  efi_loader: rework efi_search_obj
  efi_loader: new function efi_search_protocol
  efi_loader: simplify efi_install_protocol_interface
  efi_loader: allow creating new handles
  efi_loader: simplify efi_uninstall_protocol_interface
  efi_loader: open_info in OpenProtocol
  efi_loader: open_info in CloseProtocol
  efi_loader: implement OpenProtocolInformation
  efi_loader: non-static efi_open_protocol, efi_close_protocol
  efi_loader: pass GUIDs as const efi_guid_t *
  efi_loader: implement ConnectController
  efi_loader: implement DisconnectController
  efi_loader: efi_net: hwaddr_size = 6
  efi_net: return EFI_UNSUPPORTED where appropriate
  efi_loader: correct bits of receive_filters bit mask
  efi_loader: use events for efi_net_receive
  efi_loader: fix efi_net_get_status
  efi_loader: set parent handle in efi_load_image
  efi_loader: implement SetWatchdogTimer

 cmd/bootefi.c                 |   1 +
 include/efi_api.h             |  83 +++--
 include/efi_loader.h          |  38 ++-
 lib/efi_loader/Makefile       |   2 +-
 lib/efi_loader/efi_boottime.c | 729 ++++++++++++++++++++++++++++++++----------
 lib/efi_loader/efi_net.c      |  57 +++-
 lib/efi_loader/efi_watchdog.c |  58 ++++
 7 files changed, 763 insertions(+), 205 deletions(-)
 create mode 100644 lib/efi_loader/efi_watchdog.c

-- 
2.14.1



More information about the U-Boot mailing list