From: Peter Jones <pjo...@redhat.com>

Signed-off-by: Peter Jones <pjo...@redhat.com>
Signed-off-by: Rob Clark <robdcl...@gmail.com>
---
 include/efi_api.h | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 58 insertions(+), 4 deletions(-)

diff --git a/include/efi_api.h b/include/efi_api.h
index ec1b321e8e..b761cf4822 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -284,28 +284,82 @@ struct efi_device_path {
        u8 type;
        u8 sub_type;
        u16 length;
-};
+} __packed;
 
 struct efi_mac_addr {
        u8 addr[32];
-};
+} __packed;
+
+#define DEVICE_PATH_TYPE_HARDWARE_DEVICE       0x01
+#  define DEVICE_PATH_SUB_TYPE_VENDOR          0x04
+
+struct efi_device_path_vendor {
+       struct efi_device_path dp;
+       efi_guid_t guid;
+       u8 vendor_data[];
+} __packed;
+
+#define DEVICE_PATH_TYPE_ACPI_DEVICE           0x02
+#  define DEVICE_PATH_SUB_TYPE_ACPI_DEVICE     0x01
+
+#define EFI_PNP_ID(ID)                         (u32)(((ID) << 16) | 0x41D0)
+#define EISA_PNP_ID(ID)                                EFI_PNP_ID(ID)
+
+struct efi_device_path_acpi_path {
+       struct efi_device_path dp;
+       u32 hid;
+       u32 uid;
+} __packed;
 
 #define DEVICE_PATH_TYPE_MESSAGING_DEVICE      0x03
+#  define DEVICE_PATH_SUB_TYPE_MSG_USB         0x05
 #  define DEVICE_PATH_SUB_TYPE_MSG_MAC_ADDR    0x0b
+#  define DEVICE_PATH_SUB_TYPE_MSG_SD          0x1a
+#  define DEVICE_PATH_SUB_TYPE_MSG_MMC         0x1d
+
+struct efi_device_path_usb {
+       struct efi_device_path dp;
+       u8 parent_port_number;
+       u8 usb_interface;
+} __packed;
 
 struct efi_device_path_mac_addr {
        struct efi_device_path dp;
        struct efi_mac_addr mac;
        u8 if_type;
-};
+} __packed;
+
+struct efi_device_path_sd_mmc_path {
+       struct efi_device_path dp;
+       u8 slot_number;
+} __packed;
 
 #define DEVICE_PATH_TYPE_MEDIA_DEVICE          0x04
+#  define DEVICE_PATH_SUB_TYPE_HARD_DRIVE_PATH 0x01
+#  define DEVICE_PATH_SUB_TYPE_CDROM_PATH      0x02
 #  define DEVICE_PATH_SUB_TYPE_FILE_PATH       0x04
 
+struct efi_device_path_hard_drive_path {
+       struct efi_device_path dp;
+       u32 partition_number;
+       u64 partition_start;
+       u64 partition_end;
+       u8 partition_signature[16];
+       u8 partmap_type;
+       u8 signature_type;
+} __packed;
+
+struct efi_device_path_cdrom_path {
+       struct efi_device_path dp;
+       u32 boot_entry;
+       u64 partition_start;
+       u64 partition_end;
+} __packed;
+
 struct efi_device_path_file_path {
        struct efi_device_path dp;
        u16 str[32];
-};
+} __packed;
 
 #define BLOCK_IO_GUID \
        EFI_GUID(0x964e5b21, 0x6459, 0x11d2, \
-- 
2.13.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to