u-boot/lib/efi_loader
Heinrich Schuchardt 180b7118be efi_loader: fix device-path for USB devices
EFI device paths for block devices must be unique. If a non-unique device
path is discovered, probing of the block device fails.

Currently we use UsbClass() device path nodes. As multiple devices may
have the same vendor and product id these are non-unique. Instead we
should use Usb() device path nodes. They include the USB port on the
parent hub. Hence they are unique.

A USB storage device may contain multiple logical units. These can be
modeled as Ctrl() nodes.

Reported-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2023-03-25 10:43:50 +01:00
..
.gitignore efi_loader: git ignore helloworld_efi.S 2020-01-07 18:08:20 +01:00
boothart.c efi_loader: add an EFI binary to print boot hart ID 2022-12-02 19:17:24 +01:00
dtbdump.c efi_loader: move dtbdump.c, initrddump.c to lib/efi_loader 2022-03-20 17:01:00 +01:00
efi_acpi.c efi: Correct address handling with ACPI tables 2022-01-25 11:44:36 -07:00
efi_bootmgr.c bootmenu: add removable media entries 2022-09-14 08:43:32 +02:00
efi_boottime.c efi_loader: static functions in efi_boottime.c 2023-02-10 13:05:40 +01:00
efi_capsule.c efi_loader: set CapsuleMax from CONFIG_EFI_CAPSULE_MAX 2023-02-19 21:15:15 +01:00
efi_conformance.c efi_loader: fix efi_ecpt_register() 2023-02-10 13:05:40 +01:00
efi_console.c efi_loader: describe term_get_char() 2023-03-13 13:56:14 +01:00
efi_device_path.c efi_loader: fix device-path for USB devices 2023-03-25 10:43:50 +01:00
efi_device_path_to_text.c efi_loader: support for Ctrl() device path node 2023-03-25 10:43:50 +01:00
efi_device_path_utilities.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_disk.c efi: Improve logging in efi_disk 2023-01-23 18:11:39 -05:00
efi_dt_fixup.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
efi_esrt.c efi_loader: fix comment in ESRT code 2023-01-27 18:32:00 +01:00
efi_file.c efi_loader: replace a u16_strdup with alloc + memcpy 2022-11-16 08:34:06 +01:00
efi_firmware.c FWU: Add support for the FWU Multi Bank Update feature 2022-10-31 14:47:32 -04:00
efi_freestanding.c trace: Use notrace for short 2023-01-18 11:49:12 -07:00
efi_gop.c efi_loader: make gop_blt() static 2023-02-10 13:05:40 +01:00
efi_helper.c eficonfig: carve out efi_get_next_variable_name_int calls 2022-12-20 16:06:48 +01:00
efi_hii.c efi_loader: refine set_keyboard_layout() status 2023-01-13 09:09:07 +01:00
efi_hii_config.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_image_loader.c Correct SPL use of EFI_TCG2_PROTOCOL 2023-02-09 16:32:26 -05:00
efi_load_initrd.c efi_loader: remove efi_delete_handle on loadfile2 2022-10-16 12:23:22 +02:00
efi_load_options.c efi_loader: simplify efi_set_load_options() 2022-10-10 16:34:26 +02:00
efi_memory.c efi_loader: fix description of memory functions 2023-01-13 09:09:07 +01:00
efi_net.c efi_loader: fix handling of DHCP acknowledge 2022-12-02 19:17:24 +01:00
efi_riscv.c efi_loader: use EFI_EXIT in efi_riscv_get_boot_hartid 2023-01-13 09:09:07 +01:00
efi_rng.c efi_loader: use %pUs for printing GUIDs 2022-01-19 16:16:33 +01:00
efi_root_node.c Correct SPL use of EFI_UNICODE_COLLATION_PROTOCOL2 2023-02-09 16:32:26 -05:00
efi_runtime.c efi_loader: static functions in efi_runtime.c 2023-02-10 13:05:40 +01:00
efi_setup.c efi_loader: set CapsuleMax from CONFIG_EFI_CAPSULE_MAX 2023-02-19 21:15:15 +01:00
efi_signature.c efi_loader: signature: export efi_hash_regions() 2022-07-05 14:37:16 +02:00
efi_smbios.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
efi_string.c efi: Add string conversion helper 2022-10-06 22:54:57 +02:00
efi_tcg2.c efi_loader: Measure the loaded DTB 2023-02-19 21:15:15 +01:00
efi_unicode_collation.c efi_loader: Fix buffer underflow 2022-11-22 11:54:30 +01:00
efi_var_common.c efi_loader: update attribute check for QueryVariableInfo() 2023-02-10 13:05:39 +01:00
efi_var_file.c efi_loader: avoid adding variables twice 2022-12-29 10:51:50 +01:00
efi_var_mem.c efi_loader: avoid buffer overrun in efi_var_mem_compare 2023-02-19 21:15:15 +01:00
efi_var_seed.S efi_loader: pre-seed UEFI variables 2020-07-16 12:37:02 +02:00
efi_variable.c efi_loader: update SetVariable attribute check 2023-03-13 13:56:14 +01:00
efi_variable_tee.c efi_loader: Set variable attributes when EFI_BUFFER_TOO_SMALL is returned 2022-03-20 11:03:06 +01:00
efi_watchdog.c efi_loader: update the timing of enabling and disabling EFI watchdog 2022-02-26 07:37:01 +01:00
helloworld.c efi_loader: static functions in helloworld.c 2023-02-10 13:05:40 +01:00
initrddump.c efi_loader: make get_load_options() static 2023-02-10 13:05:40 +01:00
Kconfig efi_loader: set CapsuleMax from CONFIG_EFI_CAPSULE_MAX 2023-02-19 21:15:15 +01:00
Makefile efi_loader: add an EFI binary to print boot hart ID 2022-12-02 19:17:24 +01:00