mbox series

[U-Boot,0/6] efi_loader: add HII database protocol

Message ID 20181101044039.19755-1-takahiro.akashi@linaro.org
Headers show
Series efi_loader: add HII database protocol | expand


AKASHI Takahiro Nov. 1, 2018, 4:40 a.m. UTC
HII database protocol is the last missing (major?) piece of code so that
we can run unmodified EDKII's shell and UEFI SCT on EFI-enabled u-boot.

The original code was initially written by Leif and Rob a year ago[1],
and now I'm reworking it. The implementation has not been much
enhanced from the original, but I tried to give it clearer implementation
to be able to add more functionality easily later on.
I also addressed the comments by Alex[2] and added a self test on
request of Heinrich.

HII configuration routing protocol and access protocol have only
a skeleton and should be implemented when we need to have *drivers*
that require configuration mechanism.

Concerns (if any):
* missing features (see the commit log of patch#2)
* unaligned access to *packed* structure in a package list should be

[1] https://lists.denx.de/pipermail/u-boot/2017-October/308999.html
[2] https://lists.denx.de/pipermail/u-boot/2017-October/309116.html

AKASHI Takahiro (4):
  efi: hii: add guid package support
  efi: hii: add keyboard layout package support
  efi: hii: add HII config routing/access protocols
  efi_selftest: add HII database protocols test

Akashi, Takahiro (1):
  lib: add u16_strcpy/strdup functions

Leif Lindholm (1):
  efi_loader: Initial HII database protocols

 include/charset.h                        |   18 +
 include/efi_api.h                        |  410 +++++++++
 include/efi_loader.h                     |    8 +
 lib/charset.c                            |   29 +
 lib/efi_loader/Makefile                  |    1 +
 lib/efi_loader/efi_boottime.c            |   18 +
 lib/efi_loader/efi_hii.c                 | 1053 ++++++++++++++++++++++
 lib/efi_loader/efi_hii_config.c          |  146 +++
 lib/efi_selftest/Makefile                |    1 +
 lib/efi_selftest/efi_selftest_hii.c      |  882 ++++++++++++++++++
 lib/efi_selftest/efi_selftest_hii_data.c |  450 +++++++++
 11 files changed, 3016 insertions(+)
 create mode 100644 lib/efi_loader/efi_hii.c
 create mode 100644 lib/efi_loader/efi_hii_config.c
 create mode 100644 lib/efi_selftest/efi_selftest_hii.c
 create mode 100644 lib/efi_selftest/efi_selftest_hii_data.c