aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2.h12
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h29
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_init.h8
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h74
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_raid.h8
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_sas.h2
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_tool.h44
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_type.h2
8 files changed, 148 insertions, 31 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h
index 7b14a015c903..088eefa67da8 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2000-2013 LSI Corporation. 2 * Copyright (c) 2000-2014 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2.h 5 * Name: mpi2.h
@@ -8,7 +8,7 @@
8 * scatter/gather formats. 8 * scatter/gather formats.
9 * Creation Date: June 21, 2006 9 * Creation Date: June 21, 2006
10 * 10 *
11 * mpi2.h Version: 02.00.28 11 * mpi2.h Version: 02.00.32
12 * 12 *
13 * Version History 13 * Version History
14 * --------------- 14 * ---------------
@@ -78,6 +78,11 @@
78 * 07-10-12 02.00.26 Bumped MPI2_HEADER_VERSION_UNIT. 78 * 07-10-12 02.00.26 Bumped MPI2_HEADER_VERSION_UNIT.
79 * 07-26-12 02.00.27 Bumped MPI2_HEADER_VERSION_UNIT. 79 * 07-26-12 02.00.27 Bumped MPI2_HEADER_VERSION_UNIT.
80 * 11-27-12 02.00.28 Bumped MPI2_HEADER_VERSION_UNIT. 80 * 11-27-12 02.00.28 Bumped MPI2_HEADER_VERSION_UNIT.
81 * 12-20-12 02.00.29 Bumped MPI2_HEADER_VERSION_UNIT.
82 * Added MPI25_SUP_REPLY_POST_HOST_INDEX_OFFSET.
83 * 04-09-13 02.00.30 Bumped MPI2_HEADER_VERSION_UNIT.
84 * 04-17-13 02.00.31 Bumped MPI2_HEADER_VERSION_UNIT.
85 * 08-19-13 02.00.32 Bumped MPI2_HEADER_VERSION_UNIT.
81 * -------------------------------------------------------------------------- 86 * --------------------------------------------------------------------------
82 */ 87 */
83 88
@@ -103,7 +108,7 @@
103#define MPI2_VERSION_02_00 (0x0200) 108#define MPI2_VERSION_02_00 (0x0200)
104 109
105/* versioning for this MPI header set */ 110/* versioning for this MPI header set */
106#define MPI2_HEADER_VERSION_UNIT (0x1C) 111#define MPI2_HEADER_VERSION_UNIT (0x20)
107#define MPI2_HEADER_VERSION_DEV (0x00) 112#define MPI2_HEADER_VERSION_DEV (0x00)
108#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) 113#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00)
109#define MPI2_HEADER_VERSION_UNIT_SHIFT (8) 114#define MPI2_HEADER_VERSION_UNIT_SHIFT (8)
@@ -263,6 +268,7 @@ typedef volatile struct _MPI2_SYSTEM_INTERFACE_REGS
263#define MPI2_REPLY_POST_HOST_INDEX_MASK (0x00FFFFFF) 268#define MPI2_REPLY_POST_HOST_INDEX_MASK (0x00FFFFFF)
264#define MPI2_RPHI_MSIX_INDEX_MASK (0xFF000000) 269#define MPI2_RPHI_MSIX_INDEX_MASK (0xFF000000)
265#define MPI2_RPHI_MSIX_INDEX_SHIFT (24) 270#define MPI2_RPHI_MSIX_INDEX_SHIFT (24)
271#define MPI25_SUP_REPLY_POST_HOST_INDEX_OFFSET (0x0000030C) /* MPI v2.5 only */
266 272
267/* 273/*
268 * Defines for the HCBSize and address 274 * Defines for the HCBSize and address
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
index 88cb7f828bbd..510ef0dc8d7b 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.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_cnfg.h 5 * Name: mpi2_cnfg.h
6 * Title: MPI Configuration messages and pages 6 * Title: MPI Configuration messages and pages
7 * Creation Date: November 10, 2006 7 * Creation Date: November 10, 2006
8 * 8 *
9 * mpi2_cnfg.h Version: 02.00.23 9 * mpi2_cnfg.h Version: 02.00.26
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -150,7 +150,13 @@
150 * Added UEFIVersion field to BIOS Page 1 and defined new 150 * Added UEFIVersion field to BIOS Page 1 and defined new
151 * BiosOptions bits. 151 * BiosOptions bits.
152 * 11-27-12 02.00.23 Added MPI2_MANPAGE7_FLAG_EVENTREPLAY_SLOT_ORDER. 152 * 11-27-12 02.00.23 Added MPI2_MANPAGE7_FLAG_EVENTREPLAY_SLOT_ORDER.
153 * Added MPI2_BIOSPAGE1_OPTIONS_MASK_OEM_ID. 153 * Added MPI2_BIOSPAGE1_OPTIONS_MASK_OEM_ID.
154 * 12-20-12 02.00.24 Marked MPI2_SASIOUNIT1_CONTROL_CLEAR_AFFILIATION as
155 * obsolete for MPI v2.5 and later.
156 * Added some defines for 12G SAS speeds.
157 * 04-09-13 02.00.25 Added MPI2_IOUNITPAGE1_ATA_SECURITY_FREEZE_LOCK.
158 * Fixed MPI2_IOUNITPAGE5_DMA_CAP_MASK_MAX_REQUESTS to
159 * match the specification.
154 * -------------------------------------------------------------------------- 160 * --------------------------------------------------------------------------
155 */ 161 */
156 162
@@ -773,6 +779,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1
773#define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) 779#define MPI2_IOUNITPAGE1_PAGEVERSION (0x04)
774 780
775/* IO Unit Page 1 Flags defines */ 781/* IO Unit Page 1 Flags defines */
782#define MPI2_IOUNITPAGE1_ATA_SECURITY_FREEZE_LOCK (0x00004000)
776#define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800) 783#define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800)
777#define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) 784#define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600)
778#define MPI2_IOUNITPAGE1_SATA_WRITE_CACHE_SHIFT (9) 785#define MPI2_IOUNITPAGE1_SATA_WRITE_CACHE_SHIFT (9)
@@ -844,7 +851,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_5 {
844#define MPI2_IOUNITPAGE5_PAGEVERSION (0x00) 851#define MPI2_IOUNITPAGE5_PAGEVERSION (0x00)
845 852
846/* defines for IO Unit Page 5 DmaEngineCapabilities field */ 853/* defines for IO Unit Page 5 DmaEngineCapabilities field */
847#define MPI2_IOUNITPAGE5_DMA_CAP_MASK_MAX_REQUESTS (0xFF00) 854#define MPI2_IOUNITPAGE5_DMA_CAP_MASK_MAX_REQUESTS (0xFFFF0000)
848#define MPI2_IOUNITPAGE5_DMA_CAP_SHIFT_MAX_REQUESTS (16) 855#define MPI2_IOUNITPAGE5_DMA_CAP_SHIFT_MAX_REQUESTS (16)
849 856
850#define MPI2_IOUNITPAGE5_DMA_CAP_EEDP (0x0008) 857#define MPI2_IOUNITPAGE5_DMA_CAP_EEDP (0x0008)
@@ -885,13 +892,17 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 {
885 U16 IOCTemperature; /* 0x10 */ 892 U16 IOCTemperature; /* 0x10 */
886 U8 IOCTemperatureUnits; /* 0x12 */ 893 U8 IOCTemperatureUnits; /* 0x12 */
887 U8 IOCSpeed; /* 0x13 */ 894 U8 IOCSpeed; /* 0x13 */
888 U16 BoardTemperature; /* 0x14 */ 895 U16 BoardTemperature; /* 0x14 */
889 U8 BoardTemperatureUnits; /* 0x16 */ 896 U8 BoardTemperatureUnits; /* 0x16 */
890 U8 Reserved3; /* 0x17 */ 897 U8 Reserved3; /* 0x17 */
898 U32 Reserved4; /* 0x18 */
899 U32 Reserved5; /* 0x1C */
900 U32 Reserved6; /* 0x20 */
901 U32 Reserved7; /* 0x24 */
891} MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7, 902} MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7,
892 Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t; 903 Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t;
893 904
894#define MPI2_IOUNITPAGE7_PAGEVERSION (0x02) 905#define MPI2_IOUNITPAGE7_PAGEVERSION (0x04)
895 906
896/* defines for IO Unit Page 7 PCIeWidth field */ 907/* defines for IO Unit Page 7 PCIeWidth field */
897#define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1 (0x01) 908#define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1 (0x01)
@@ -1801,6 +1812,7 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_1
1801#define MPI2_SAS_PRATE_MAX_RATE_1_5 (0x80) 1812#define MPI2_SAS_PRATE_MAX_RATE_1_5 (0x80)
1802#define MPI2_SAS_PRATE_MAX_RATE_3_0 (0x90) 1813#define MPI2_SAS_PRATE_MAX_RATE_3_0 (0x90)
1803#define MPI2_SAS_PRATE_MAX_RATE_6_0 (0xA0) 1814#define MPI2_SAS_PRATE_MAX_RATE_6_0 (0xA0)
1815#define MPI25_SAS_PRATE_MAX_RATE_12_0 (0xB0)
1804#define MPI2_SAS_PRATE_MIN_RATE_MASK (0x0F) 1816#define MPI2_SAS_PRATE_MIN_RATE_MASK (0x0F)
1805#define MPI2_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) 1817#define MPI2_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00)
1806#define MPI2_SAS_PRATE_MIN_RATE_1_5 (0x08) 1818#define MPI2_SAS_PRATE_MIN_RATE_1_5 (0x08)
@@ -1813,6 +1825,7 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_1
1813#define MPI2_SAS_HWRATE_MAX_RATE_1_5 (0x80) 1825#define MPI2_SAS_HWRATE_MAX_RATE_1_5 (0x80)
1814#define MPI2_SAS_HWRATE_MAX_RATE_3_0 (0x90) 1826#define MPI2_SAS_HWRATE_MAX_RATE_3_0 (0x90)
1815#define MPI2_SAS_HWRATE_MAX_RATE_6_0 (0xA0) 1827#define MPI2_SAS_HWRATE_MAX_RATE_6_0 (0xA0)
1828#define MPI25_SAS_HWRATE_MAX_RATE_12_0 (0xB0)
1816#define MPI2_SAS_HWRATE_MIN_RATE_MASK (0x0F) 1829#define MPI2_SAS_HWRATE_MIN_RATE_MASK (0x0F)
1817#define MPI2_SAS_HWRATE_MIN_RATE_1_5 (0x08) 1830#define MPI2_SAS_HWRATE_MIN_RATE_1_5 (0x08)
1818#define MPI2_SAS_HWRATE_MIN_RATE_3_0 (0x09) 1831#define MPI2_SAS_HWRATE_MIN_RATE_3_0 (0x09)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_init.h b/drivers/scsi/mpt2sas/mpi/mpi2_init.h
index 9d284dae6553..eea1a16b13ec 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_init.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_init.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_init.h 5 * Name: mpi2_init.h
6 * Title: MPI SCSI initiator mode messages and structures 6 * Title: MPI SCSI initiator mode messages and structures
7 * Creation Date: June 23, 2006 7 * Creation Date: June 23, 2006
8 * 8 *
9 * mpi2_init.h Version: 02.00.14 9 * mpi2_init.h Version: 02.00.15
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -37,6 +37,8 @@
37 * 02-06-12 02.00.13 Added alternate defines for Task Priority / Command 37 * 02-06-12 02.00.13 Added alternate defines for Task Priority / Command
38 * Priority to match SAM-4. 38 * Priority to match SAM-4.
39 * 07-10-12 02.00.14 Added MPI2_SCSIIO_CONTROL_SHIFT_DATADIRECTION. 39 * 07-10-12 02.00.14 Added MPI2_SCSIIO_CONTROL_SHIFT_DATADIRECTION.
40 * 04-09-13 02.00.15 Added SCSIStatusQualifier field to MPI2_SCSI_IO_REPLY,
41 * replacing the Reserved4 field.
40 * -------------------------------------------------------------------------- 42 * --------------------------------------------------------------------------
41 */ 43 */
42 44
@@ -234,7 +236,7 @@ typedef struct _MPI2_SCSI_IO_REPLY
234 U32 SenseCount; /* 0x18 */ 236 U32 SenseCount; /* 0x18 */
235 U32 ResponseInfo; /* 0x1C */ 237 U32 ResponseInfo; /* 0x1C */
236 U16 TaskTag; /* 0x20 */ 238 U16 TaskTag; /* 0x20 */
237 U16 Reserved4; /* 0x22 */ 239 U16 SCSIStatusQualifier; /* 0x22 */
238 U32 BidirectionalTransferCount; /* 0x24 */ 240 U32 BidirectionalTransferCount; /* 0x24 */
239 U32 Reserved5; /* 0x28 */ 241 U32 Reserved5; /* 0x28 */
240 U32 Reserved6; /* 0x2C */ 242 U32 Reserved6; /* 0x2C */
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****************************************************************************/
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
index 0d202a2c6db7..7efa58ff0d34 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_raid.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_raid.h 5 * Name: mpi2_raid.h
6 * Title: MPI Integrated RAID messages and structures 6 * Title: MPI Integrated RAID messages and structures
7 * Creation Date: April 26, 2007 7 * Creation Date: April 26, 2007
8 * 8 *
9 * mpi2_raid.h Version: 02.00.09 9 * mpi2_raid.h Version: 02.00.10
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -29,6 +29,7 @@
29 * 02-06-12 02.00.08 Added MPI2_RAID_ACTION_PHYSDISK_HIDDEN. 29 * 02-06-12 02.00.08 Added MPI2_RAID_ACTION_PHYSDISK_HIDDEN.
30 * 07-26-12 02.00.09 Added ElapsedSeconds field to MPI2_RAID_VOL_INDICATOR. 30 * 07-26-12 02.00.09 Added ElapsedSeconds field to MPI2_RAID_VOL_INDICATOR.
31 * Added MPI2_RAID_VOL_FLAGS_ELAPSED_SECONDS_VALID define. 31 * Added MPI2_RAID_VOL_FLAGS_ELAPSED_SECONDS_VALID define.
32 * 04-17-13 02.00.10 Added MPI25_RAID_ACTION_ADATA_ALLOW_PI.
32 * -------------------------------------------------------------------------- 33 * --------------------------------------------------------------------------
33 */ 34 */
34 35
@@ -45,6 +46,9 @@
45* RAID Action messages 46* RAID Action messages
46****************************************************************************/ 47****************************************************************************/
47 48
49/* ActionDataWord defines for use with MPI2_RAID_ACTION_CREATE_VOLUME action */
50#define MPI25_RAID_ACTION_ADATA_ALLOW_PI (0x80000000)
51
48/* ActionDataWord defines for use with MPI2_RAID_ACTION_DELETE_VOLUME action */ 52/* ActionDataWord defines for use with MPI2_RAID_ACTION_DELETE_VOLUME action */
49#define MPI2_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000) 53#define MPI2_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000)
50#define MPI2_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000001) 54#define MPI2_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000001)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
index 50b39ccd526a..45b6fa10b803 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2000-2013 LSI Corporation. 2 * Copyright (c) 2000-2014 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2_sas.h 5 * Name: mpi2_sas.h
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h b/drivers/scsi/mpt2sas/mpi/mpi2_tool.h
index 11b2ac4e7c6e..9be03ed46180 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_tool.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_tool.h 5 * Name: mpi2_tool.h
6 * Title: MPI diagnostic tool structures and definitions 6 * Title: MPI diagnostic tool structures and definitions
7 * Creation Date: March 26, 2007 7 * Creation Date: March 26, 2007
8 * 8 *
9 * mpi2_tool.h Version: 02.00.10 9 * mpi2_tool.h Version: 02.00.11
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -29,6 +29,7 @@
29 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST. 29 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
30 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that 30 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
31 * it uses MPI Chain SGE as well as MPI Simple SGE. 31 * it uses MPI Chain SGE as well as MPI Simple SGE.
32 * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
32 * -------------------------------------------------------------------------- 33 * --------------------------------------------------------------------------
33 */ 34 */
34 35
@@ -48,6 +49,7 @@
48#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) 49#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
49#define MPI2_TOOLBOX_BEACON_TOOL (0x05) 50#define MPI2_TOOLBOX_BEACON_TOOL (0x05)
50#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06) 51#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
52#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07)
51 53
52 54
53/**************************************************************************** 55/****************************************************************************
@@ -321,6 +323,44 @@ typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY {
321 MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t; 323 MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t;
322 324
323 325
326/****************************************************************************
327* Toolbox Console Text Display Tool
328****************************************************************************/
329
330/* Toolbox Console Text Display Tool request message */
331typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST {
332 U8 Tool; /* 0x00 */
333 U8 Reserved1; /* 0x01 */
334 U8 ChainOffset; /* 0x02 */
335 U8 Function; /* 0x03 */
336 U16 Reserved2; /* 0x04 */
337 U8 Reserved3; /* 0x06 */
338 U8 MsgFlags; /* 0x07 */
339 U8 VP_ID; /* 0x08 */
340 U8 VF_ID; /* 0x09 */
341 U16 Reserved4; /* 0x0A */
342 U8 Console; /* 0x0C */
343 U8 Flags; /* 0x0D */
344 U16 Reserved6; /* 0x0E */
345 U8 TextToDisplay[4]; /* 0x10 */
346} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
347MPI2_POINTER PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
348Mpi2ToolboxTextDisplayRequest_t,
349MPI2_POINTER pMpi2ToolboxTextDisplayRequest_t;
350
351/* defines for the Console field */
352#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0)
353#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00)
354#define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10)
355#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20)
356
357#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F)
358
359/* defines for the Flags field */
360#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01)
361
362
363
324/***************************************************************************** 364/*****************************************************************************
325* 365*
326* Diagnostic Buffer Messages 366* Diagnostic Buffer Messages
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_type.h b/drivers/scsi/mpt2sas/mpi/mpi2_type.h
index 0b128b68a5ea..6b0dcdd02f68 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_type.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_type.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2000-2013 LSI Corporation. 2 * Copyright (c) 2000-2014 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2_type.h 5 * Name: mpi2_type.h