|
@@ -1,12 +1,12 @@
|
|
|
/*
|
|
|
- * Copyright (c) 2000-2013 LSI Corporation.
|
|
|
+ * Copyright (c) 2000-2014 LSI Corporation.
|
|
|
*
|
|
|
*
|
|
|
* Name: mpi2_ioc.h
|
|
|
* Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
|
|
|
* Creation Date: October 11, 2006
|
|
|
*
|
|
|
- * mpi2_ioc.h Version: 02.00.22
|
|
|
+ * mpi2_ioc.h Version: 02.00.23
|
|
|
*
|
|
|
* Version History
|
|
|
* ---------------
|
|
@@ -121,6 +121,11 @@
|
|
|
* 07-26-12 02.00.22 Added MPI2_IOCFACTS_EXCEPT_PARTIAL_MEMORY_FAILURE.
|
|
|
* Added ElapsedSeconds field to
|
|
|
* MPI2_EVENT_DATA_IR_OPERATION_STATUS.
|
|
|
+ * 08-19-13 02.00.23 For IOCInit, added MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE
|
|
|
+ * and MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY.
|
|
|
+ * Added MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE.
|
|
|
+ * Added MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY.
|
|
|
+ * Added Encrypted Hash Extended Image.
|
|
|
* --------------------------------------------------------------------------
|
|
|
*/
|
|
|
|
|
@@ -177,6 +182,9 @@ typedef struct _MPI2_IOC_INIT_REQUEST
|
|
|
#define MPI2_WHOINIT_HOST_DRIVER (0x04)
|
|
|
#define MPI2_WHOINIT_MANUFACTURER (0x05)
|
|
|
|
|
|
+/* MsgFlags */
|
|
|
+#define MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE (0x01)
|
|
|
+
|
|
|
/* MsgVersion */
|
|
|
#define MPI2_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00)
|
|
|
#define MPI2_IOCINIT_MSGVERSION_MAJOR_SHIFT (8)
|
|
@@ -189,9 +197,17 @@ typedef struct _MPI2_IOC_INIT_REQUEST
|
|
|
#define MPI2_IOCINIT_HDRVERSION_DEV_MASK (0x00FF)
|
|
|
#define MPI2_IOCINIT_HDRVERSION_DEV_SHIFT (0)
|
|
|
|
|
|
-/* minimum depth for the Reply Descriptor Post Queue */
|
|
|
+/* minimum depth for a Reply Descriptor Post Queue */
|
|
|
#define MPI2_RDPQ_DEPTH_MIN (16)
|
|
|
|
|
|
+/* Reply Descriptor Post Queue Array Entry */
|
|
|
+typedef struct _MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY {
|
|
|
+ U64 RDPQBaseAddress; /* 0x00 */
|
|
|
+ U32 Reserved1; /* 0x08 */
|
|
|
+ U32 Reserved2; /* 0x0C */
|
|
|
+} MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY,
|
|
|
+MPI2_POINTER PTR_MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY,
|
|
|
+Mpi2IOCInitRDPQArrayEntry, MPI2_POINTER pMpi2IOCInitRDPQArrayEntry;
|
|
|
|
|
|
/* IOCInit Reply message */
|
|
|
typedef struct _MPI2_IOC_INIT_REPLY
|
|
@@ -307,6 +323,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY
|
|
|
/* ProductID field uses MPI2_FW_HEADER_PID_ */
|
|
|
|
|
|
/* IOCCapabilities */
|
|
|
+#define MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE (0x00040000)
|
|
|
#define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000)
|
|
|
#define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000)
|
|
|
#define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000)
|
|
@@ -1153,6 +1170,7 @@ typedef struct _MPI2_FW_DOWNLOAD_REQUEST
|
|
|
#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09)
|
|
|
#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A)
|
|
|
#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
|
|
|
+#define MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY (0x0C)
|
|
|
#define MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC (0xF0)
|
|
|
|
|
|
/* FWDownload TransactionContext Element */
|
|
@@ -1379,14 +1397,15 @@ typedef struct _MPI2_EXT_IMAGE_HEADER
|
|
|
#define MPI2_EXT_IMAGE_HEADER_SIZE (0x40)
|
|
|
|
|
|
/* defines for the ImageType field */
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_FW (0x01)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_NVDATA (0x03)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_BOOTLOADER (0x04)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_INITIALIZATION (0x05)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_FLASH_LAYOUT (0x06)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_SUPPORTED_DEVICES (0x07)
|
|
|
-#define MPI2_EXT_IMAGE_TYPE_MEGARAID (0x08)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_FW (0x01)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_NVDATA (0x03)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_BOOTLOADER (0x04)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_INITIALIZATION (0x05)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_FLASH_LAYOUT (0x06)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_SUPPORTED_DEVICES (0x07)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_MEGARAID (0x08)
|
|
|
+#define MPI2_EXT_IMAGE_TYPE_ENCRYPTED_HASH (0x09)
|
|
|
#define MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC (0x80)
|
|
|
#define MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC (0xFF)
|
|
|
#define MPI2_EXT_IMAGE_TYPE_MAX \
|
|
@@ -1555,6 +1574,39 @@ typedef struct _MPI2_INIT_IMAGE_FOOTER
|
|
|
#define MPI2_INIT_IMAGE_RESETVECTOR_OFFSET (0x14)
|
|
|
|
|
|
|
|
|
+/* Encrypted Hash Extended Image Data */
|
|
|
+
|
|
|
+typedef struct _MPI25_ENCRYPTED_HASH_ENTRY {
|
|
|
+ U8 HashImageType; /* 0x00 */
|
|
|
+ U8 HashAlgorithm; /* 0x01 */
|
|
|
+ U8 EncryptionAlgorithm; /* 0x02 */
|
|
|
+ U8 Reserved1; /* 0x03 */
|
|
|
+ U32 Reserved2; /* 0x04 */
|
|
|
+ U32 EncryptedHash[1]; /* 0x08 */
|
|
|
+} MPI25_ENCRYPTED_HASH_ENTRY, MPI2_POINTER PTR_MPI25_ENCRYPTED_HASH_ENTRY,
|
|
|
+Mpi25EncryptedHashEntry_t, MPI2_POINTER pMpi25EncryptedHashEntry_t;
|
|
|
+
|
|
|
+/* values for HashImageType */
|
|
|
+#define MPI25_HASH_IMAGE_TYPE_UNUSED (0x00)
|
|
|
+#define MPI25_HASH_IMAGE_TYPE_FIRMWARE (0x01)
|
|
|
+
|
|
|
+/* values for HashAlgorithm */
|
|
|
+#define MPI25_HASH_ALGORITHM_UNUSED (0x00)
|
|
|
+#define MPI25_HASH_ALGORITHM_SHA256 (0x01)
|
|
|
+
|
|
|
+/* values for EncryptionAlgorithm */
|
|
|
+#define MPI25_ENCRYPTION_ALG_UNUSED (0x00)
|
|
|
+#define MPI25_ENCRYPTION_ALG_RSA256 (0x01)
|
|
|
+
|
|
|
+typedef struct _MPI25_ENCRYPTED_HASH_DATA {
|
|
|
+ U8 ImageVersion; /* 0x00 */
|
|
|
+ U8 NumHash; /* 0x01 */
|
|
|
+ U16 Reserved1; /* 0x02 */
|
|
|
+ U32 Reserved2; /* 0x04 */
|
|
|
+ MPI25_ENCRYPTED_HASH_ENTRY EncryptedHashEntry[1]; /* 0x08 */
|
|
|
+} MPI25_ENCRYPTED_HASH_DATA, MPI2_POINTER PTR_MPI25_ENCRYPTED_HASH_DATA,
|
|
|
+Mpi25EncryptedHashData_t, MPI2_POINTER pMpi25EncryptedHashData_t;
|
|
|
+
|
|
|
/****************************************************************************
|
|
|
* PowerManagementControl message
|
|
|
****************************************************************************/
|