from a software point of view. The path must persist from boot to boot, so \r
it can not contain things like PCI bus numbers that change from boot to boot.\r
\r
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials are licensed and made available under \r
the terms and conditions of the BSD License that accompanies this distribution. \r
The full text of the license may be found at\r
#define __EFI_DEVICE_PATH_PROTOCOL_H__\r
\r
#include <Guid/PcAnsi.h>\r
+#include <IndustryStandard/Bluetooth.h>\r
+#include <IndustryStandard/Acpi60.h>\r
\r
///\r
/// Device Path protocol.\r
UINT32 ControllerNumber;\r
} CONTROLLER_DEVICE_PATH;\r
\r
+///\r
+/// BMC Device Path SubType.\r
+///\r
+#define HW_BMC_DP 0x06\r
+\r
+///\r
+/// BMC Device Path.\r
+///\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Interface Type.\r
+ ///\r
+ UINT8 InterfaceType;\r
+ ///\r
+ /// Base Address.\r
+ ///\r
+ UINT8 BaseAddress[8];\r
+} BMC_DEVICE_PATH;\r
+\r
///\r
/// ACPI Device Paths.\r
///\r
#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4\r
\r
#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \\r
- ((UINT32)( (((_DeviceIdScheme) & 0x1) << 31) | \\r
- (((_HeadId) & 0x7) << 18) | \\r
- (((_NonVgaOutput) & 0x1) << 17) | \\r
- (((_BiosCanDetect) & 0x1) << 16) | \\r
- (((_VendorInfo) & 0xf) << 12) | \\r
- (((_Type) & 0xf) << 8) | \\r
- (((_Port) & 0xf) << 4) | \\r
- ((_Index) & 0xf) ))\r
+ ((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \\r
+ (((_HeadId) & 0x7) << 18) | \\r
+ (((_NonVgaOutput) & 0x1) << 17) | \\r
+ (((_BiosCanDetect) & 0x1) << 16) | \\r
+ (((_VendorInfo) & 0xf) << 12) | \\r
+ (((_Type) & 0xf) << 8) | \\r
+ (((_Port) & 0xf) << 4) | \\r
+ ((_Index) & 0xf) ))\r
\r
///\r
/// Messaging Device Paths.\r
UINT16 HBAPortNumber;\r
///\r
/// The Port multiplier port number that facilitates the connection\r
- /// to the device. Bit 15 should be set if the device is directly\r
+ /// to the device. Must be set to 0xFFFF if the device is directly\r
/// connected to the HBA.\r
///\r
UINT16 PortMultiplierPortNumber;\r
UINT64 NamespaceUuid;\r
} NVME_NAMESPACE_DEVICE_PATH;\r
\r
+///\r
+/// Uniform Resource Identifiers (URI) Device Path SubType\r
+///\r
+#define MSG_URI_DP 0x18\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Instance of the URI pursuant to RFC 3986.\r
+ ///\r
+ CHAR8 Uri[];\r
+} URI_DEVICE_PATH;\r
+\r
+///\r
+/// Universal Flash Storage (UFS) Device Path SubType.\r
+///\r
+#define MSG_UFS_DP 0x19\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Target ID on the UFS bus (PUN).\r
+ ///\r
+ UINT8 Pun;\r
+ ///\r
+ /// Logical Unit Number (LUN).\r
+ ///\r
+ UINT8 Lun;\r
+} UFS_DEVICE_PATH;\r
+\r
+///\r
+/// SD (Secure Digital) Device Path SubType.\r
+///\r
+#define MSG_SD_DP 0x1A\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ UINT8 SlotNumber;\r
+} SD_DEVICE_PATH;\r
+\r
+///\r
+/// EMMC (Embedded MMC) Device Path SubType.\r
+///\r
+#define MSG_EMMC_DP 0x1D\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ UINT8 SlotNumber;\r
+} EMMC_DEVICE_PATH;\r
+\r
///\r
/// iSCSI Device Path SubType\r
///\r
UINT16 VlanId;\r
} VLAN_DEVICE_PATH;\r
\r
+///\r
+/// Bluetooth Device Path SubType.\r
+///\r
+#define MSG_BLUETOOTH_DP 0x1b\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// 48bit Bluetooth device address.\r
+ ///\r
+ BLUETOOTH_ADDRESS BD_ADDR;\r
+} BLUETOOTH_DEVICE_PATH;\r
+\r
+///\r
+/// Wi-Fi Device Path SubType.\r
+///\r
+#define MSG_WIFI_DP 0x1C\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Service set identifier. A 32-byte octets string.\r
+ ///\r
+ UINT8 SSId[32];\r
+} WIFI_DEVICE_PATH;\r
+\r
//\r
// Media Device Path\r
//\r
UINT64 EndingOffset;\r
} MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;\r
\r
+///\r
+/// This GUID defines a RAM Disk supporting a raw disk format in volatile memory.\r
+///\r
+#define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE\r
+\r
+extern EFI_GUID gEfiVirtualDiskGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting an ISO image in volatile memory.\r
+///\r
+#define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE\r
+\r
+extern EFI_GUID gEfiVirtualCdGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting a raw disk format in persistent memory.\r
+///\r
+#define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT\r
+\r
+extern EFI_GUID gEfiPersistentVirtualDiskGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting an ISO image in persistent memory.\r
+///\r
+#define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT\r
+\r
+extern EFI_GUID gEfiPersistentVirtualCdGuid;\r
+\r
+///\r
+/// Media ram disk device path.\r
+///\r
+#define MEDIA_RAM_DISK_DP 0x09\r
+\r
+///\r
+/// Used to describe the ram disk device path.\r
+///\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Starting Memory Address.\r
+ ///\r
+ UINT32 StartingAddr[2];\r
+ ///\r
+ /// Ending Memory Address.\r
+ ///\r
+ UINT32 EndingAddr[2];\r
+ ///\r
+ /// GUID that defines the type of the RAM Disk.\r
+ ///\r
+ EFI_GUID TypeGuid;\r
+ ///\r
+ /// RAM Diskinstance number, if supported. The default value is zero.\r
+ ///\r
+ UINT16 Instance;\r
+} MEDIA_RAM_DISK_DEVICE_PATH;\r
+\r
///\r
/// BIOS Boot Specification Device Path.\r
///\r
VENDOR_DEVICE_PATH Vendor;\r
\r
CONTROLLER_DEVICE_PATH Controller;\r
+ BMC_DEVICE_PATH Bmc;\r
ACPI_HID_DEVICE_PATH Acpi;\r
ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi;\r
ACPI_ADR_DEVICE_PATH AcpiAdr;\r
SAS_DEVICE_PATH Sas;\r
SASEX_DEVICE_PATH SasEx;\r
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace;\r
+ URI_DEVICE_PATH Uri;\r
+ BLUETOOTH_DEVICE_PATH Bluetooth;\r
+ WIFI_DEVICE_PATH WiFi;\r
+ UFS_DEVICE_PATH Ufs;\r
+ SD_DEVICE_PATH Sd;\r
+ EMMC_DEVICE_PATH Emmc;\r
HARDDRIVE_DEVICE_PATH HardDrive;\r
CDROM_DEVICE_PATH CD;\r
\r
MEDIA_FW_VOL_DEVICE_PATH FirmwareVolume;\r
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FirmwareFile;\r
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset;\r
-\r
+ MEDIA_RAM_DISK_DEVICE_PATH RamDisk;\r
BBS_BBS_DEVICE_PATH Bbs;\r
} EFI_DEV_PATH;\r
\r
VENDOR_DEVICE_PATH *Vendor;\r
\r
CONTROLLER_DEVICE_PATH *Controller;\r
+ BMC_DEVICE_PATH *Bmc;\r
ACPI_HID_DEVICE_PATH *Acpi;\r
ACPI_EXTENDED_HID_DEVICE_PATH *ExtendedAcpi;\r
ACPI_ADR_DEVICE_PATH *AcpiAdr;\r
SAS_DEVICE_PATH *Sas;\r
SASEX_DEVICE_PATH *SasEx;\r
NVME_NAMESPACE_DEVICE_PATH *NvmeNamespace;\r
+ URI_DEVICE_PATH *Uri;\r
+ BLUETOOTH_DEVICE_PATH *Bluetooth;\r
+ WIFI_DEVICE_PATH *WiFi;\r
+ UFS_DEVICE_PATH *Ufs;\r
+ SD_DEVICE_PATH *Sd;\r
+ EMMC_DEVICE_PATH *Emmc;\r
HARDDRIVE_DEVICE_PATH *HardDrive;\r
CDROM_DEVICE_PATH *CD;\r
\r
MEDIA_FW_VOL_DEVICE_PATH *FirmwareVolume;\r
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FirmwareFile;\r
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *Offset;\r
-\r
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDisk;\r
BBS_BBS_DEVICE_PATH *Bbs;\r
UINT8 *Raw;\r
} EFI_DEV_PATH_PTR;\r