diff options
Diffstat (limited to 'lib/efi_loader/efi_disk.c')
| -rw-r--r-- | lib/efi_loader/efi_disk.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index f0d76113b00..b808a7fe627 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -690,6 +690,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 +749,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. +	 */ +  }  /** | 
