aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
diff options
context:
space:
mode:
authorSreekanth Reddy <sreekanth.reddy@avagotech.com>2014-09-12 06:05:17 -0400
committerChristoph Hellwig <hch@lst.de>2014-09-16 12:14:13 -0400
commitff4637d6d1f2f4fdf014404b5b4b1d1e4adc6283 (patch)
tree046e1a2e85065534868a44bb951d133a366e99a6 /drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
parent4e1f20ae4f92706518d6c18b13da8c2bc28339c7 (diff)
mpt2sas: MPI2 Rev Y (2.00.17) and Rev Z (2.00.18) specifications
Below is the change set in MPI2 Rev Y specification and in 2.00.17 header files 1) Added SCSIStatusQualifier to SCSI IO Error Reply message. 2) Added ATA Security Freeze Lock to IO Unit Page 1 Flags field. Below is the change set in MPI2 Rev Z specification and in 2.00.19 header files 1) Added reserved fields to IO Unit Page 7 for future use. 2) Added optional functionality to IOCInit Request so that the host may specify a separate base address for each Reply Descriptor Post Queue. IOC support for this is indicated using a new IOCCapabilities bit in the IOCFacts Reply. 3) Added Toolbox Console Text Display Tool The host uses the Console Text Display Tool to send a string to IOC's Console using different console types (eg: UART serial terminal or Ethernet terminal). The copyright in the mpi files is updated for year 2014 Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@avagotech.com> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_ioc.h')
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h74
1 files changed, 63 insertions, 11 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
index d159c5f24aab..2c3b0f28576b 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2013 LSI Corporation. 2 * Copyright (c) 2000-2014 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2_ioc.h 5 * Name: mpi2_ioc.h
6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages 6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
7 * Creation Date: October 11, 2006 7 * Creation Date: October 11, 2006
8 * 8 *
9 * mpi2_ioc.h Version: 02.00.22 9 * mpi2_ioc.h Version: 02.00.23
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -121,6 +121,11 @@
121 * 07-26-12 02.00.22 Added MPI2_IOCFACTS_EXCEPT_PARTIAL_MEMORY_FAILURE. 121 * 07-26-12 02.00.22 Added MPI2_IOCFACTS_EXCEPT_PARTIAL_MEMORY_FAILURE.
122 * Added ElapsedSeconds field to 122 * Added ElapsedSeconds field to
123 * MPI2_EVENT_DATA_IR_OPERATION_STATUS. 123 * MPI2_EVENT_DATA_IR_OPERATION_STATUS.
124 * 08-19-13 02.00.23 For IOCInit, added MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE
125 * and MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY.
126 * Added MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE.
127 * Added MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY.
128 * Added Encrypted Hash Extended Image.
124 * -------------------------------------------------------------------------- 129 * --------------------------------------------------------------------------
125 */ 130 */
126 131
@@ -177,6 +182,9 @@ typedef struct _MPI2_IOC_INIT_REQUEST
177#define MPI2_WHOINIT_HOST_DRIVER (0x04) 182#define MPI2_WHOINIT_HOST_DRIVER (0x04)
178#define MPI2_WHOINIT_MANUFACTURER (0x05) 183#define MPI2_WHOINIT_MANUFACTURER (0x05)
179 184
185/* MsgFlags */
186#define MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE (0x01)
187
180/* MsgVersion */ 188/* MsgVersion */
181#define MPI2_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00) 189#define MPI2_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00)
182#define MPI2_IOCINIT_MSGVERSION_MAJOR_SHIFT (8) 190#define MPI2_IOCINIT_MSGVERSION_MAJOR_SHIFT (8)
@@ -189,9 +197,17 @@ typedef struct _MPI2_IOC_INIT_REQUEST
189#define MPI2_IOCINIT_HDRVERSION_DEV_MASK (0x00FF) 197#define MPI2_IOCINIT_HDRVERSION_DEV_MASK (0x00FF)
190#define MPI2_IOCINIT_HDRVERSION_DEV_SHIFT (0) 198#define MPI2_IOCINIT_HDRVERSION_DEV_SHIFT (0)
191 199
192/* minimum depth for the Reply Descriptor Post Queue */ 200/* minimum depth for a Reply Descriptor Post Queue */
193#define MPI2_RDPQ_DEPTH_MIN (16) 201#define MPI2_RDPQ_DEPTH_MIN (16)
194 202
203/* Reply Descriptor Post Queue Array Entry */
204typedef struct _MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY {
205 U64 RDPQBaseAddress; /* 0x00 */
206 U32 Reserved1; /* 0x08 */
207 U32 Reserved2; /* 0x0C */
208} MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY,
209MPI2_POINTER PTR_MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY,
210Mpi2IOCInitRDPQArrayEntry, MPI2_POINTER pMpi2IOCInitRDPQArrayEntry;
195 211
196/* IOCInit Reply message */ 212/* IOCInit Reply message */
197typedef struct _MPI2_IOC_INIT_REPLY 213typedef struct _MPI2_IOC_INIT_REPLY
@@ -307,6 +323,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY
307/* ProductID field uses MPI2_FW_HEADER_PID_ */ 323/* ProductID field uses MPI2_FW_HEADER_PID_ */
308 324
309/* IOCCapabilities */ 325/* IOCCapabilities */
326#define MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE (0x00040000)
310#define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000) 327#define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000)
311#define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) 328#define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000)
312#define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) 329#define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000)
@@ -1153,6 +1170,7 @@ typedef struct _MPI2_FW_DOWNLOAD_REQUEST
1153#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09) 1170#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09)
1154#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A) 1171#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A)
1155#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B) 1172#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
1173#define MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY (0x0C)
1156#define MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC (0xF0) 1174#define MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC (0xF0)
1157 1175
1158/* FWDownload TransactionContext Element */ 1176/* FWDownload TransactionContext Element */
@@ -1379,14 +1397,15 @@ typedef struct _MPI2_EXT_IMAGE_HEADER
1379#define MPI2_EXT_IMAGE_HEADER_SIZE (0x40) 1397#define MPI2_EXT_IMAGE_HEADER_SIZE (0x40)
1380 1398
1381/* defines for the ImageType field */ 1399/* defines for the ImageType field */
1382#define MPI2_EXT_IMAGE_TYPE_UNSPECIFIED (0x00) 1400#define MPI2_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)
1383#define MPI2_EXT_IMAGE_TYPE_FW (0x01) 1401#define MPI2_EXT_IMAGE_TYPE_FW (0x01)
1384#define MPI2_EXT_IMAGE_TYPE_NVDATA (0x03) 1402#define MPI2_EXT_IMAGE_TYPE_NVDATA (0x03)
1385#define MPI2_EXT_IMAGE_TYPE_BOOTLOADER (0x04) 1403#define MPI2_EXT_IMAGE_TYPE_BOOTLOADER (0x04)
1386#define MPI2_EXT_IMAGE_TYPE_INITIALIZATION (0x05) 1404#define MPI2_EXT_IMAGE_TYPE_INITIALIZATION (0x05)
1387#define MPI2_EXT_IMAGE_TYPE_FLASH_LAYOUT (0x06) 1405#define MPI2_EXT_IMAGE_TYPE_FLASH_LAYOUT (0x06)
1388#define MPI2_EXT_IMAGE_TYPE_SUPPORTED_DEVICES (0x07) 1406#define MPI2_EXT_IMAGE_TYPE_SUPPORTED_DEVICES (0x07)
1389#define MPI2_EXT_IMAGE_TYPE_MEGARAID (0x08) 1407#define MPI2_EXT_IMAGE_TYPE_MEGARAID (0x08)
1408#define MPI2_EXT_IMAGE_TYPE_ENCRYPTED_HASH (0x09)
1390#define MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC (0x80) 1409#define MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC (0x80)
1391#define MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC (0xFF) 1410#define MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC (0xFF)
1392#define MPI2_EXT_IMAGE_TYPE_MAX \ 1411#define MPI2_EXT_IMAGE_TYPE_MAX \
@@ -1555,6 +1574,39 @@ typedef struct _MPI2_INIT_IMAGE_FOOTER
1555#define MPI2_INIT_IMAGE_RESETVECTOR_OFFSET (0x14) 1574#define MPI2_INIT_IMAGE_RESETVECTOR_OFFSET (0x14)
1556 1575
1557 1576
1577/* Encrypted Hash Extended Image Data */
1578
1579typedef struct _MPI25_ENCRYPTED_HASH_ENTRY {
1580 U8 HashImageType; /* 0x00 */
1581 U8 HashAlgorithm; /* 0x01 */
1582 U8 EncryptionAlgorithm; /* 0x02 */
1583 U8 Reserved1; /* 0x03 */
1584 U32 Reserved2; /* 0x04 */
1585 U32 EncryptedHash[1]; /* 0x08 */
1586} MPI25_ENCRYPTED_HASH_ENTRY, MPI2_POINTER PTR_MPI25_ENCRYPTED_HASH_ENTRY,
1587Mpi25EncryptedHashEntry_t, MPI2_POINTER pMpi25EncryptedHashEntry_t;
1588
1589/* values for HashImageType */
1590#define MPI25_HASH_IMAGE_TYPE_UNUSED (0x00)
1591#define MPI25_HASH_IMAGE_TYPE_FIRMWARE (0x01)
1592
1593/* values for HashAlgorithm */
1594#define MPI25_HASH_ALGORITHM_UNUSED (0x00)
1595#define MPI25_HASH_ALGORITHM_SHA256 (0x01)
1596
1597/* values for EncryptionAlgorithm */
1598#define MPI25_ENCRYPTION_ALG_UNUSED (0x00)
1599#define MPI25_ENCRYPTION_ALG_RSA256 (0x01)
1600
1601typedef struct _MPI25_ENCRYPTED_HASH_DATA {
1602 U8 ImageVersion; /* 0x00 */
1603 U8 NumHash; /* 0x01 */
1604 U16 Reserved1; /* 0x02 */
1605 U32 Reserved2; /* 0x04 */
1606 MPI25_ENCRYPTED_HASH_ENTRY EncryptedHashEntry[1]; /* 0x08 */
1607} MPI25_ENCRYPTED_HASH_DATA, MPI2_POINTER PTR_MPI25_ENCRYPTED_HASH_DATA,
1608Mpi25EncryptedHashData_t, MPI2_POINTER pMpi25EncryptedHashData_t;
1609
1558/**************************************************************************** 1610/****************************************************************************
1559* PowerManagementControl message 1611* PowerManagementControl message
1560****************************************************************************/ 1612****************************************************************************/