[PATCH 1/1] efi_loader: run bootdev_hunt() to find ESP

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu Nov 14 07:38:07 CET 2024


Hi Simon,

On Thu, 14 Nov 2024 at 05:54, Simon Glass <sjg at chromium.org> wrote:
>
> Hi Heinrich,
>
> On Wed, 13 Nov 2024 at 12:55, Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
> >
> > Some hard devices need specific routines to scan for block devices,
> > e.g. NVMe (nvme scan), SCSI (scsi start).
> >
> > Invoke bootdev_hunt() to find all block devices.
> >
> > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> > ---
> >  lib/efi_loader/efi_setup.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
> > index aa59bc7779d..8e0ff16f3eb 100644
> > --- a/lib/efi_loader/efi_setup.c
> > +++ b/lib/efi_loader/efi_setup.c
> > @@ -7,6 +7,7 @@
> >
> >  #define LOG_CATEGORY LOGC_EFI
> >
> > +#include <bootdev.h>
> >  #include <efi_loader.h>
> >  #include <efi_variable.h>
> >  #include <log.h>
> > @@ -228,6 +229,13 @@ efi_status_t efi_init_obj_list(void)
> >          * Probe block devices to find the ESP.
> >          * efi_disks_register() must be called before efi_init_variables().
> >          */
> > +       if (CONFIG_IS_ENABLED(BOOTSTD)) {
> > +               int r;
> > +
> > +               r = bootdev_hunt(NULL, 0);
> > +               if (r)
> > +                       log_debug("No boot device available\n");
> > +       }
> >         ret = efi_disks_register();
> >         if (ret != EFI_SUCCESS)
> >                 goto out;
> > --
> > 2.45.2
> >
>
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> Can we do this later, e.g. when we need to boot? What specifically
> needs to scan for block devices? Perhaps a better question is: when is
> the ESP needed?

It depends on how the board is configured. There's generally 2 cases
where we need early access to the ESP
- Variables if they are stored in a file in the ESP
- Capsule update on disk, since we need to scan the ESP for a capsule

Cheers
/Ilias
>  It would be nice to have that info in the commit
> message.
>
> I wonder if we could/should delete efi_disks_register() now?
>
> Regards,
> Simon


More information about the U-Boot mailing list