mbox series

[U-Boot,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 | expand

Message

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

# 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. UTC | #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
Heinrich Schuchardt Jan. 22, 2019, 9:13 p.m. UTC | #2
On 1/22/19 10:48 AM, Alexander Graf wrote:
> 
> 
> 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
> 
I have seen that Takahiro has integrated my recent suggestions.

Currently I am still trying to understand what is wrong with
GetNextVariableName().

So let's go with your review.

Best regards

Heinrich
AKASHI Takahiro Jan. 23, 2019, 5:11 a.m. UTC | #3
Heinrich,

On Tue, Jan 22, 2019 at 10:13:52PM +0100, Heinrich Schuchardt wrote:
> On 1/22/19 10:48 AM, Alexander Graf wrote:
> > 
> > 
> > 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
> > 
> I have seen that Takahiro has integrated my recent suggestions.
> 
> Currently I am still trying to understand what is wrong with
> GetNextVariableName().

Thank you for finding and investigating this issue.
I almost all of my time test my patches on arm64 primarily :)

-Takahiro Akashi

> So let's go with your review.
> 
> Best regards
> 
> Heinrich
Alexander Graf Jan. 23, 2019, 6:35 a.m. UTC | #4
> Am 23.01.2019 um 06:11 schrieb AKASHI Takahiro <takahiro.akashi@linaro.org>:
> 
> Heinrich,
> 
>> On Tue, Jan 22, 2019 at 10:13:52PM +0100, Heinrich Schuchardt wrote:
>>> On 1/22/19 10:48 AM, Alexander Graf wrote:
>>> 
>>> 
>>>> 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
>>> 
>> I have seen that Takahiro has integrated my recent suggestions.
>> 
>> Currently I am still trying to understand what is wrong with
>> GetNextVariableName().
> 
> Thank you for finding and investigating this issue.
> I almost all of my time test my patches on arm64 primarily :)

Please always push your patch queues as braches to github and enable travis there. It will tell you quite conclusive test results, so that you don't break others targets by accident :).

Alex

> 
> -Takahiro Akashi
> 
>> So let's go with your review.
>> 
>> Best regards
>> 
>> Heinrich