summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2023-07-19 07:43:08 +0300
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2023-07-20 10:12:50 +0300
commite07368ea57d224557570a6715dcffdbc883a8079 (patch)
treed109142eaa8cba2ead501a544faf857cadc14c95 /include
parentdc7a2f1d9fcd642ba8c2a6d544244c7852c5f6ec (diff)
downloadu-boot-e07368ea57d224557570a6715dcffdbc883a8079.tar.xz
efi_loader: support all uclasses in device path
On devices with multiple USB mass storage devices errors like Path /../USB(0x0,0x0)/USB(0x1,0x0)/Ctrl(0x0) already installed. are seen. This is due to creating non-unique device paths. To uniquely identify devices we must provide path nodes for all devices on the path from the root device. Add support for generating device path nodes for all uclasses. Reported-by: Suniel Mahesh <sunil@amarulasolutions.com> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Diffstat (limited to 'include')
-rw-r--r--include/efi_api.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index 55a4c989fc..8f5ef5f680 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -579,6 +579,13 @@ struct efi_device_path_vendor {
u8 vendor_data[];
} __packed;
+struct efi_device_path_udevice {
+ struct efi_device_path dp;
+ efi_guid_t guid;
+ int uclass_id;
+ int dev_number;
+} __packed;
+
struct efi_device_path_controller {
struct efi_device_path dp;
u32 controller_number;