mbox series

[U-Boot,v3,00/18] efi_loader: manage protocols in a linked list (v3)

Message ID 20171126130523.4993-1-xypron.glpk@gmx.de
Headers show
Series efi_loader: manage protocols in a linked list (v3) | expand

Message

Heinrich Schuchardt Nov. 26, 2017, 1:05 p.m. UTC
Up to now the protocols of an EFI handle where contained in an
array of fixed size. With the patch series the protocols are
managed in a linked list. This both saves memory and gives
more flexibility.

The LocateDevicePath boot service is implemented according
to the UEFI specification.

A unit test for the LocateDevicePath boot service and the
device path to text protocol are added.

Some bug fixes are provided.

v3
	Remove patch
	efi_loader: efi_bootmgr: do not make hidden assignments
	(A patch to add device path printing in printf() is
	pending.)
	Resubmit
	efi_loader: helloworld.c: remove superfluous include
v2
	Enhance the helloworld example to check if the image
	handle is passed corectly. Adjust the related py
	test.

	Use a helper function to initialize EFI objects.

	Further minor bug fixes.

Heinrich Schuchardt (18):
  efi_loader: helloworld.c: remove superfluous include
  efi_loader: size of media device path node represenation
  efi_loader: efi_dp_str should print path not node
  efi_loader: fix efi_convert_device_node_to_text
  efi_loader: reimplement LocateDevicePath
  efi_selftest: test EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
  efi_loader: efi_disk: use efi_add_protocol
  efi_loader: efi_net: use efi_add_protocol
  efi_loader: efi_gop: use efi_add_protocol
  efi_loader: simplify efi_open_protocol
  efi_loader: simplify find_obj
  efi_loader: manage protocols in a linked list
  efi_selftest: compile without special compiler flags
  efi_selftest: add missing line feed
  efi_loader: output load options in helloworld
  test/py: check return code of helloworld
  efi_loader: pass handle of loaded image
  efi_loader: helper function to add EFI object to list

 cmd/bootefi.c                              |   7 +-
 include/efi_loader.h                       |   8 +-
 lib/efi_loader/efi_boottime.c              | 287 ++++++++++++---------
 lib/efi_loader/efi_device_path.c           |  43 ++--
 lib/efi_loader/efi_device_path_to_text.c   | 167 ++++++------
 lib/efi_loader/efi_disk.c                  |  38 +--
 lib/efi_loader/efi_gop.c                   |  16 +-
 lib/efi_loader/efi_net.c                   |  35 +--
 lib/efi_loader/helloworld.c                |  38 ++-
 lib/efi_selftest/Makefile                  |  24 +-
 lib/efi_selftest/efi_selftest.c            |   2 +-
 lib/efi_selftest/efi_selftest_devicepath.c | 391 +++++++++++++++++++++++++++++
 test/py/tests/test_efi_loader.py           |   2 +
 13 files changed, 770 insertions(+), 288 deletions(-)
 create mode 100644 lib/efi_selftest/efi_selftest_devicepath.c

Comments

Simon Glass Nov. 27, 2017, 5:09 p.m. UTC | #1
Hi,

On 26 November 2017 at 06:05, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
> Up to now the protocols of an EFI handle where contained in an
> array of fixed size. With the patch series the protocols are
> managed in a linked list. This both saves memory and gives
> more flexibility.
>
> The LocateDevicePath boot service is implemented according
> to the UEFI specification.
>
> A unit test for the LocateDevicePath boot service and the
> device path to text protocol are added.
>
> Some bug fixes are provided.
>
> v3
>         Remove patch
>         efi_loader: efi_bootmgr: do not make hidden assignments
>         (A patch to add device path printing in printf() is
>         pending.)
>         Resubmit
>         efi_loader: helloworld.c: remove superfluous include
> v2
>         Enhance the helloworld example to check if the image
>         handle is passed corectly. Adjust the related py
>         test.
>
>         Use a helper function to initialize EFI objects.
>
>         Further minor bug fixes.
>
> Heinrich Schuchardt (18):
>   efi_loader: helloworld.c: remove superfluous include
>   efi_loader: size of media device path node represenation
>   efi_loader: efi_dp_str should print path not node
>   efi_loader: fix efi_convert_device_node_to_text
>   efi_loader: reimplement LocateDevicePath
>   efi_selftest: test EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
>   efi_loader: efi_disk: use efi_add_protocol
>   efi_loader: efi_net: use efi_add_protocol
>   efi_loader: efi_gop: use efi_add_protocol
>   efi_loader: simplify efi_open_protocol
>   efi_loader: simplify find_obj
>   efi_loader: manage protocols in a linked list
>   efi_selftest: compile without special compiler flags
>   efi_selftest: add missing line feed
>   efi_loader: output load options in helloworld
>   test/py: check return code of helloworld
>   efi_loader: pass handle of loaded image
>   efi_loader: helper function to add EFI object to list
>

This series seems to have been hanging around for a while. Is it going
to be applied soon?

Regards,
Simon
Alexander Graf Dec. 1, 2017, 12:42 p.m. UTC | #2
On 11/27/2017 06:09 PM, Simon Glass wrote:
> Hi,
>
> On 26 November 2017 at 06:05, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>> Up to now the protocols of an EFI handle where contained in an
>> array of fixed size. With the patch series the protocols are
>> managed in a linked list. This both saves memory and gives
>> more flexibility.
>>
>> The LocateDevicePath boot service is implemented according
>> to the UEFI specification.
>>
>> A unit test for the LocateDevicePath boot service and the
>> device path to text protocol are added.
>>
>> Some bug fixes are provided.
>>
>> v3
>>          Remove patch
>>          efi_loader: efi_bootmgr: do not make hidden assignments
>>          (A patch to add device path printing in printf() is
>>          pending.)
>>          Resubmit
>>          efi_loader: helloworld.c: remove superfluous include
>> v2
>>          Enhance the helloworld example to check if the image
>>          handle is passed corectly. Adjust the related py
>>          test.
>>
>>          Use a helper function to initialize EFI objects.
>>
>>          Further minor bug fixes.
>>
>> Heinrich Schuchardt (18):
>>    efi_loader: helloworld.c: remove superfluous include
>>    efi_loader: size of media device path node represenation
>>    efi_loader: efi_dp_str should print path not node
>>    efi_loader: fix efi_convert_device_node_to_text
>>    efi_loader: reimplement LocateDevicePath
>>    efi_selftest: test EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
>>    efi_loader: efi_disk: use efi_add_protocol
>>    efi_loader: efi_net: use efi_add_protocol
>>    efi_loader: efi_gop: use efi_add_protocol
>>    efi_loader: simplify efi_open_protocol
>>    efi_loader: simplify find_obj
>>    efi_loader: manage protocols in a linked list
>>    efi_selftest: compile without special compiler flags
>>    efi_selftest: add missing line feed
>>    efi_loader: output load options in helloworld
>>    test/py: check return code of helloworld
>>    efi_loader: pass handle of loaded image
>>    efi_loader: helper function to add EFI object to list
>>
> This series seems to have been hanging around for a while. Is it going
> to be applied soon?


Well, v3 was only one day old by the time you wrote :). But yes, on it.


Alex