Hi Raymond, On Tue, May 02, 2023 at 12:12:21PM -0700, Raymond Mao wrote: > The boot variables automatically generated for removable medias > should be with short form of device path without device nodes. > This is a requirement for the case that a removable media is > plugged into a different port but is still able to work with the > existing boot variables. > > Signed-off-by: Raymond Mao <raymond....@linaro.org> > --- > Changes in v2 > - Ignore EFI_NOT_FOUND returned from > efi_bootmgr_update_media_device_boot_option which means no boot > options scanned. > Changes in v3 > - Split the patch into moving and renaming functions and > individual patches for each changed functionality > > cmd/bootmenu.c | 2 +- > cmd/eficonfig.c | 2 +- > include/efi_loader.h | 2 +- > lib/efi_loader/efi_bootmgr.c | 16 +++++++++++++--- > lib/efi_loader/efi_disk.c | 2 +- > lib/efi_loader/efi_variable.c | 2 +- > lib/efi_loader/efi_variable_tee.c | 2 +- > 7 files changed, 19 insertions(+), 9 deletions(-)
[...] > * @count: number of efi handle > + * @short_path: use short form device path for matching > * Return: status code > */ > static efi_status_t efi_bootmgr_enumerate_boot_option(struct > eficonfig_media_boot_option *opt, > efi_handle_t > *volume_handles, > - efi_status_t count) > + efi_status_t count, > + bool short_path) Are there cases where the normal device path is used? If not we can get rid of the bool option entirely > { > u32 i; > struct efi_handler *handler; > @@ -387,6 +389,13 @@ static efi_status_t > efi_bootmgr_enumerate_boot_option(struct eficonfig_media_boo > p = dev_name; > utf8_utf16_strncpy(&p, buf, strlen(buf)); > > + /* use short form device path */ > + if (short_path) { > + device_path = efi_dp_shorten(device_path); > + if (!device_path) > + continue; > + } > + > lo.label = dev_name; > lo.attributes = LOAD_OPTION_ACTIVE; > lo.file_path = device_path; [...] Thanks /Ilias