
Currently U-Boot only allows a single event. This is sufficient to run grub but not for other workloads as iPXE.
The EFI_SIMPLE_TEXT_INPUT_PROTOCOL requires an event WaitForKey. This is used for instance by the iPXE shell.
The 1st patch replaces void * by struct efi_event * where applicable. This renders the code more readable.
The 2nd patch implements the support for multiple events.
The 3rd patch corrects the size of the tpl level function parameters to match UINTN.
The 4th patch makes efi_create_event internally callable.
The 5th patch makes efi_set_timer internally callable.
The 6th patch sets up events to track console input and to signal this to the WaitForKey event.
The 7th patch implements the conversion of multiples of 100ns to multiples of 1000 ns in efi_set_timer.
--- v2 Patches 1, 3, 4, 5, 7 are new. A patch to silence debug output for WaitForKey has been dropped. Patches 2 and 6 are completely reworked compared to v1 of the patch series. Multiple events in WaitForEvent are addressed. The serial console handling is move to dynamically allocated events. ---
Heinrich Schuchardt (7): efi_loader: use struct efi_event * instead of void * efi_loader: implement multiple event support efi_loader: correct size for tpl level efi_loader: refactor efi_create_event efi_loader: refactor efi_set_timer efi_console: set up events efi_loader: correctly implement 100ns conversion
cmd/bootefi.c | 1 + include/efi_api.h | 44 ++++--- include/efi_loader.h | 39 +++++- lib/efi_loader/efi_boottime.c | 298 +++++++++++++++++++++++++++++------------- lib/efi_loader/efi_console.c | 40 +++++- 5 files changed, 316 insertions(+), 106 deletions(-)