[v3,0/5] subject: efi_loader: add HII database protocol

Message ID 20190121031301.1808-1-takahiro.akashi@linaro.org
Headers show
Series
  • subject: efi_loader: add HII database protocol
Related show

Message

AKASHI Takahiro Jan. 21, 2019, 3:12 a.m.
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.

# Please note that a bunch of warnings are generated by checkpatch.pl,
# but there are also good reasons for not fixing them.

Changes in v3 (Jan 21, 2019)
* drope v2's patch#1("lib: add u16_strcpy/strdup functions") as it has
  been merged
* define a "key" value as u32 in efi_key_descriptor
* simplify "if" condition in export_package_lists()
* access "packed" structures of HII packages through get_unaligned_xx()
* implement GetSecondaryLanguages()
* compare a language in case-insensitive way in GetString() & GetLanguages()
* cosmetic changes (including variable/struct member names)

Changes in v2 (Nov 16, 2018)
* add some descriptions to newly added functions
* rename EFI_HII_PACKAGE_[TYPE|LEN]_* to __EFI_HII_PACKAGE_[TYPE|LEN]_*
  as they are of internal use only
* cast a return value (of efi_status_t) to "unsigned int" for printing

[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

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

 include/efi_api.h                        |  421 ++++++++-
 include/efi_loader.h                     |    8 +
 lib/efi_loader/Makefile                  |    1 +
 lib/efi_loader/efi_boottime.c            |   18 +
 lib/efi_loader/efi_hii.c                 | 1095 ++++++++++++++++++++++
 lib/efi_loader/efi_hii_config.c          |  146 +++
 lib/efi_selftest/Makefile                |    1 +
 lib/efi_selftest/efi_selftest_hii.c      | 1046 +++++++++++++++++++++
 lib/efi_selftest/efi_selftest_hii_data.c |  453 +++++++++
 9 files changed, 3188 insertions(+), 1 deletion(-)
 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

Comments

Alexander Graf Jan. 22, 2019, 9:48 a.m. | #1
On 21.01.19 04:12, AKASHI Takahiro wrote:
> 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.

Reviewed-by: Alexander Graf <agraf@suse.de>

But I'll wait for Heinrich's ok as well :)


Alex