On 5/2/25 16:49, Simon Glass wrote:
Hi Heinrich,

On Mon, 21 Apr 2025 at 10:26, Heinrich Schuchardt
<heinrich.schucha...@canonical.com> wrote:

The EFI boot manager bootmeth does not require variable BootOrder to be
preexisting. It creates this variable.

Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
---
  boot/bootmeth_efi_mgr.c | 21 +++------------------
  1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/boot/bootmeth_efi_mgr.c b/boot/bootmeth_efi_mgr.c
index 42b8863815e..1669cbed5bd 100644
--- a/boot/bootmeth_efi_mgr.c
+++ b/boot/bootmeth_efi_mgr.c
@@ -47,30 +47,15 @@ static int efi_mgr_check(struct udevice *dev, struct 
bootflow_iter *iter)

  static int efi_mgr_read_bootflow(struct udevice *dev, struct bootflow *bflow)
  {
-       struct efi_mgr_priv *priv = dev_get_priv(dev);
-       efi_status_t ret;
-       efi_uintn_t size;
-       u16 *bootorder;
-
-       if (priv->fake_dev) {
-               bflow->state = BOOTFLOWST_READY;
-               return 0;
-       }
+       int ret

         ret = efi_init_obj_list();
         if (ret)
                 return log_msg_ret("init", ret);

-       /* Enable this method if the "BootOrder" UEFI exists. */
-       bootorder = efi_get_var(u"BootOrder", &efi_global_variable_guid,
-                               &size);
-       if (bootorder) {
-               free(bootorder);
-               bflow->state = BOOTFLOWST_READY;
-               return 0;
-       }
+       bflow->state = BOOTFLOWST_READY;

-       return -EINVAL;
+       return 0;
  }

  static int efi_mgr_read_file(struct udevice *dev, struct bootflow *bflow,
--
2.48.1


How do we know if the board is using EFI bootmgr? My understanding was
that this was a way to find out?

The boot manager must always run.

The check for the BootOrder variable introduced in commit f2bfa0cb1794 is a bug.

The boot manager handles in sequence:

* Try to boot as indicated by BootNext.
* Try to boot as indicated by BootOrder.
* Try to boot default path for available media.
  This will add Boot#### entries and update BootOrder.

Best regards

Heinrich

Reply via email to