mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
Load option with short device path for boot vars
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.mao@linaro.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
9945bc4f86
commit
7aa022c797
1 changed files with 6 additions and 0 deletions
|
@ -368,6 +368,7 @@ static efi_status_t efi_bootmgr_enumerate_boot_option(struct eficonfig_media_boo
|
|||
struct efi_load_option lo;
|
||||
char buf[BOOTMENU_DEVICE_NAME_MAX];
|
||||
struct efi_device_path *device_path;
|
||||
struct efi_device_path *short_dp;
|
||||
|
||||
ret = efi_search_protocol(volume_handles[i], &efi_guid_device_path, &handler);
|
||||
if (ret != EFI_SUCCESS)
|
||||
|
@ -384,6 +385,11 @@ static efi_status_t efi_bootmgr_enumerate_boot_option(struct eficonfig_media_boo
|
|||
p = dev_name;
|
||||
utf8_utf16_strncpy(&p, buf, strlen(buf));
|
||||
|
||||
/* prefer to short form device path */
|
||||
short_dp = efi_dp_shorten(device_path);
|
||||
if (short_dp)
|
||||
device_path = short_dp;
|
||||
|
||||
lo.label = dev_name;
|
||||
lo.attributes = LOAD_OPTION_ACTIVE;
|
||||
lo.file_path = device_path;
|
||||
|
|
Loading…
Reference in a new issue