[U-Boot] [PATCH 04/16] efi: Add a TODO to efi_init_obj_list()

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Sep 18 04:47:13 UTC 2017


On 09/18/2017 12:59 AM, Simon Glass wrote:
> This function repeats data structures provided by driver model. They are
> only created once so can be stale if the EFI loader is called twice (e.g.
> for testing or on boot failure).
> 
> Add a TODO to address this. It should be possible to attach EFI devices
> and data structures to driver-model devices and avoid having a parallel
> set of data structures.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
>  cmd/bootefi.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/cmd/bootefi.c b/cmd/bootefi.c
> index 9aa588eb1b..ee07733e3e 100644
> --- a/cmd/bootefi.c
> +++ b/cmd/bootefi.c
> @@ -109,6 +109,10 @@ static struct efi_object bootefi_device_obj = {
>  /**
>   * efi_init_obj_list() - Initialize and populate EFI object list
>   *
> + * TODO(sjg at chromium.org): Move this to a dynamic list based on driver model,
> + * so that it does not need to be created before running EFI applications
> + * and updates when devices change.
> + *

I am not quite sure if by dynamic list you refer to linker generated
lists or to hot plugging.

The UEFI spec 2.7 has a chapter on "Hot-Plug Events". This would add a
lot of complexity. I do not think that we currently need it.

The object list also gets new entries created by the EFI application via
calling InstallMultipleProtocolInterfaces of InstallProtocolInterface
with *handle == NULL.

>   * @return 0 if OK, -ve on error (in which case it prints a message)
>   */
>  static int efi_init_obj_list(void)
> 



More information about the U-Boot mailing list