diff options
author | Tom Rini <trini@konsulko.com> | 2024-01-08 12:00:18 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-01-08 12:00:18 -0500 |
commit | 93d91e9485d902a1836a22e72d1a545b587adf36 (patch) | |
tree | f368b4e3c2220e7cd34c83bf192d8b674158d16b /lib/efi_loader/efi_disk.c | |
parent | 866ca972d6c3cabeaf6dbac431e8e08bb30b3c8e (diff) | |
parent | f28a77589e7505535a4eebdc7269df98f67dbe68 (diff) |
Merge branch 'next'
Diffstat (limited to 'lib/efi_loader/efi_disk.c')
-rw-r--r-- | lib/efi_loader/efi_disk.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index f0d76113b00..ed997008c4e 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include <common.h> #include <blk.h> #include <dm.h> #include <dm/device-internal.h> @@ -690,6 +689,13 @@ int efi_disk_probe(void *ctx, struct event *event) return -1; } + /* only do the boot option management when UEFI sub-system is initialized */ + if (IS_ENABLED(CONFIG_CMD_BOOTEFI_BOOTMGR) && efi_obj_list_initialized == EFI_SUCCESS) { + ret = efi_bootmgr_update_media_device_boot_option(); + if (ret != EFI_SUCCESS) + return -1; + } + return 0; } @@ -742,6 +748,17 @@ int efi_disk_remove(void *ctx, struct event *event) dev_tag_del(dev, DM_TAG_EFI); return 0; + + /* + * TODO A flag to distinguish below 2 different scenarios of this + * function call is needed: + * a) Unplugging of a removable media under U-Boot + * b) U-Boot exiting and booting an OS + * In case of scenario a), efi_bootmgr_update_media_device_boot_option() + * needs to be invoked here to update the boot options and remove the + * unnecessary ones. + */ + } /** |