aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornagalakshmi.nandigama@lsi.com <nagalakshmi.nandigama@lsi.com>2011-11-30 21:22:49 -0500
committerJames Bottomley <JBottomley@Parallels.com>2011-12-15 01:57:38 -0500
commita6affbd5ccbb45e03168996bae4a4d0abb780874 (patch)
tree2ea14864487e3f04fa93567ce030811596acfd90
parent8bad3055e902a16b7cf47777fc3e78a965d0b57a (diff)
[SCSI] mpt2sas: MPI next revision header update
1)Removed Power Management Control option for PCIe link. 2)Added RAID Action for performing a compatibility check. Added product-specific range to RAID Action values. 3)Added PhysicalPort field to SAS Device Status Change Event data. 4)Added SpinupFlags field containing a Disable Spin-up bit to the SpinupGroupParameters fields of SAS IO Unit Page 4. Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2.h5
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h18
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h23
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_raid.h67
4 files changed, 90 insertions, 23 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h
index 985913304c3f..a01f0aa66f20 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2.h
+++ b/drivers/scsi/mpt2sas/mpi/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.21 11 * mpi2.h Version: 02.00.22
12 * 12 *
13 * Version History 13 * Version History
14 * --------------- 14 * ---------------
@@ -70,6 +70,7 @@
70 * Added MPI2_FUNCTION_SEND_HOST_MESSAGE. 70 * Added MPI2_FUNCTION_SEND_HOST_MESSAGE.
71 * 03-09-11 02.00.20 Bumped MPI2_HEADER_VERSION_UNIT. 71 * 03-09-11 02.00.20 Bumped MPI2_HEADER_VERSION_UNIT.
72 * 05-25-11 02.00.21 Bumped MPI2_HEADER_VERSION_UNIT. 72 * 05-25-11 02.00.21 Bumped MPI2_HEADER_VERSION_UNIT.
73 * 08-24-11 02.00.22 Bumped MPI2_HEADER_VERSION_UNIT.
73 * -------------------------------------------------------------------------- 74 * --------------------------------------------------------------------------
74 */ 75 */
75 76
@@ -95,7 +96,7 @@
95#define MPI2_VERSION_02_00 (0x0200) 96#define MPI2_VERSION_02_00 (0x0200)
96 97
97/* versioning for this MPI header set */ 98/* versioning for this MPI header set */
98#define MPI2_HEADER_VERSION_UNIT (0x15) 99#define MPI2_HEADER_VERSION_UNIT (0x16)
99#define MPI2_HEADER_VERSION_DEV (0x00) 100#define MPI2_HEADER_VERSION_DEV (0x00)
100#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) 101#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00)
101#define MPI2_HEADER_VERSION_UNIT_SHIFT (8) 102#define MPI2_HEADER_VERSION_UNIT_SHIFT (8)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
index d237ab8028c8..3a023dad77a1 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
@@ -6,7 +6,7 @@
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.20 9 * mpi2_cnfg.h Version: 02.00.21
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -141,6 +141,12 @@
141 * MPI2_CONFIG_PAGE_IOC_7. 141 * MPI2_CONFIG_PAGE_IOC_7.
142 * 03-09-11 02.00.19 Fixed IO Unit Page 10 (to match the spec). 142 * 03-09-11 02.00.19 Fixed IO Unit Page 10 (to match the spec).
143 * 05-25-11 02.00.20 Cleaned up a few comments. 143 * 05-25-11 02.00.20 Cleaned up a few comments.
144 * 08-24-11 02.00.21 Marked the IO Unit Page 7 PowerManagementCapabilities
145 * for PCIe link as obsolete.
146 * Added SpinupFlags field containing a Disable Spin-up
147 * bit to the MPI2_SAS_IOUNIT4_SPINUP_GROUP fields of
148 * SAS IO Unit Page 4.
149
144 * -------------------------------------------------------------------------- 150 * --------------------------------------------------------------------------
145 */ 151 */
146 152
@@ -905,8 +911,8 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 {
905#define MPI2_IOUNITPAGE7_PMCAP_12_5_PCT_IOCSPEED (0x00000400) 911#define MPI2_IOUNITPAGE7_PMCAP_12_5_PCT_IOCSPEED (0x00000400)
906#define MPI2_IOUNITPAGE7_PMCAP_25_0_PCT_IOCSPEED (0x00000200) 912#define MPI2_IOUNITPAGE7_PMCAP_25_0_PCT_IOCSPEED (0x00000200)
907#define MPI2_IOUNITPAGE7_PMCAP_50_0_PCT_IOCSPEED (0x00000100) 913#define MPI2_IOUNITPAGE7_PMCAP_50_0_PCT_IOCSPEED (0x00000100)
908#define MPI2_IOUNITPAGE7_PMCAP_PCIE_WIDTH_CHANGE (0x00000008) 914#define MPI2_IOUNITPAGE7_PMCAP_PCIE_WIDTH_CHANGE (0x00000008) /* obsolete */
909#define MPI2_IOUNITPAGE7_PMCAP_PCIE_SPEED_CHANGE (0x00000004) 915#define MPI2_IOUNITPAGE7_PMCAP_PCIE_SPEED_CHANGE (0x00000004) /* obsolete */
910 916
911/* defines for IO Unit Page 7 IOCTemperatureUnits field */ 917/* defines for IO Unit Page 7 IOCTemperatureUnits field */
912#define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT (0x00) 918#define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT (0x00)
@@ -1971,10 +1977,14 @@ typedef struct _MPI2_SAS_IOUNIT4_SPINUP_GROUP
1971{ 1977{
1972 U8 MaxTargetSpinup; /* 0x00 */ 1978 U8 MaxTargetSpinup; /* 0x00 */
1973 U8 SpinupDelay; /* 0x01 */ 1979 U8 SpinupDelay; /* 0x01 */
1974 U16 Reserved1; /* 0x02 */ 1980 U8 SpinupFlags; /* 0x02 */
1981 U8 Reserved1; /* 0x03 */
1975} MPI2_SAS_IOUNIT4_SPINUP_GROUP, MPI2_POINTER PTR_MPI2_SAS_IOUNIT4_SPINUP_GROUP, 1982} MPI2_SAS_IOUNIT4_SPINUP_GROUP, MPI2_POINTER PTR_MPI2_SAS_IOUNIT4_SPINUP_GROUP,
1976 Mpi2SasIOUnit4SpinupGroup_t, MPI2_POINTER pMpi2SasIOUnit4SpinupGroup_t; 1983 Mpi2SasIOUnit4SpinupGroup_t, MPI2_POINTER pMpi2SasIOUnit4SpinupGroup_t;
1977 1984
1985/* defines for SAS IO Unit Page 4 SpinupFlags */
1986#define MPI2_SASIOUNIT4_SPINUP_DISABLE_FLAG (0x01)
1987
1978/* 1988/*
1979 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1989 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1980 * one and check the value returned for NumPhys at runtime. 1990 * one and check the value returned for NumPhys at runtime.
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
index 7b53be83e7e3..9a925c07a9ec 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
@@ -6,7 +6,7 @@
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.18 9 * mpi2_ioc.h Version: 02.00.19
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -114,6 +114,9 @@
114 * MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC and 114 * MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC and
115 * MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC defines. 115 * MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC defines.
116 * Deprecated MPI2_EXT_IMAGE_TYPE_MAX define. 116 * Deprecated MPI2_EXT_IMAGE_TYPE_MAX define.
117 * 08-24-11 02.00.19 Added PhysicalPort field to
118 * MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE structure.
119 * Marked MPI2_PM_CONTROL_FEATURE_PCIE_LINK as obsolete.
117 * -------------------------------------------------------------------------- 120 * --------------------------------------------------------------------------
118 */ 121 */
119 122
@@ -582,7 +585,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE
582{ 585{
583 U16 TaskTag; /* 0x00 */ 586 U16 TaskTag; /* 0x00 */
584 U8 ReasonCode; /* 0x02 */ 587 U8 ReasonCode; /* 0x02 */
585 U8 Reserved1; /* 0x03 */ 588 U8 PhysicalPort; /* 0x03 */
586 U8 ASC; /* 0x04 */ 589 U8 ASC; /* 0x04 */
587 U8 ASCQ; /* 0x05 */ 590 U8 ASCQ; /* 0x05 */
588 U16 DevHandle; /* 0x06 */ 591 U16 DevHandle; /* 0x06 */
@@ -1574,7 +1577,7 @@ typedef struct _MPI2_PWR_MGMT_CONTROL_REQUEST {
1574/* defines for the Feature field */ 1577/* defines for the Feature field */
1575#define MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND (0x01) 1578#define MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND (0x01)
1576#define MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION (0x02) 1579#define MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION (0x02)
1577#define MPI2_PM_CONTROL_FEATURE_PCIE_LINK (0x03) 1580#define MPI2_PM_CONTROL_FEATURE_PCIE_LINK (0x03) /* obsolete */
1578#define MPI2_PM_CONTROL_FEATURE_IOC_SPEED (0x04) 1581#define MPI2_PM_CONTROL_FEATURE_IOC_SPEED (0x04)
1579#define MPI2_PM_CONTROL_FEATURE_MIN_PRODUCT_SPECIFIC (0x80) 1582#define MPI2_PM_CONTROL_FEATURE_MIN_PRODUCT_SPECIFIC (0x80)
1580#define MPI2_PM_CONTROL_FEATURE_MAX_PRODUCT_SPECIFIC (0xFF) 1583#define MPI2_PM_CONTROL_FEATURE_MAX_PRODUCT_SPECIFIC (0xFF)
@@ -1603,14 +1606,14 @@ typedef struct _MPI2_PWR_MGMT_CONTROL_REQUEST {
1603 1606
1604/* parameter usage for the MPI2_PM_CONTROL_FEATURE_PCIE_LINK Feature */ 1607/* parameter usage for the MPI2_PM_CONTROL_FEATURE_PCIE_LINK Feature */
1605/* Parameter1 indicates desired PCIe link speed using these defines */ 1608/* Parameter1 indicates desired PCIe link speed using these defines */
1606#define MPI2_PM_CONTROL_PARAM1_PCIE_2_5_GBPS (0x00) 1609#define MPI2_PM_CONTROL_PARAM1_PCIE_2_5_GBPS (0x00) /* obsolete */
1607#define MPI2_PM_CONTROL_PARAM1_PCIE_5_0_GBPS (0x01) 1610#define MPI2_PM_CONTROL_PARAM1_PCIE_5_0_GBPS (0x01) /* obsolete */
1608#define MPI2_PM_CONTROL_PARAM1_PCIE_8_0_GBPS (0x02) 1611#define MPI2_PM_CONTROL_PARAM1_PCIE_8_0_GBPS (0x02) /* obsolete */
1609/* Parameter2 indicates desired PCIe link width using these defines */ 1612/* Parameter2 indicates desired PCIe link width using these defines */
1610#define MPI2_PM_CONTROL_PARAM2_WIDTH_X1 (0x01) 1613#define MPI2_PM_CONTROL_PARAM2_WIDTH_X1 (0x01) /* obsolete */
1611#define MPI2_PM_CONTROL_PARAM2_WIDTH_X2 (0x02) 1614#define MPI2_PM_CONTROL_PARAM2_WIDTH_X2 (0x02) /* obsolete */
1612#define MPI2_PM_CONTROL_PARAM2_WIDTH_X4 (0x04) 1615#define MPI2_PM_CONTROL_PARAM2_WIDTH_X4 (0x04) /* obsolete */
1613#define MPI2_PM_CONTROL_PARAM2_WIDTH_X8 (0x08) 1616#define MPI2_PM_CONTROL_PARAM2_WIDTH_X8 (0x08) /* obsolete */
1614/* Parameter3 and Parameter4 are reserved */ 1617/* Parameter3 and Parameter4 are reserved */
1615 1618
1616/* parameter usage for the MPI2_PM_CONTROL_FEATURE_IOC_SPEED Feature */ 1619/* parameter usage for the MPI2_PM_CONTROL_FEATURE_IOC_SPEED Feature */
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
index bd61a7b60a2b..0601612b875a 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
@@ -6,7 +6,7 @@
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.05 9 * mpi2_raid.h Version: 02.00.06
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -23,6 +23,10 @@
23 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of 23 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of
24 * VolumeCreationFlags and marked the old one as obsolete. 24 * VolumeCreationFlags and marked the old one as obsolete.
25 * 05-12-10 02.00.05 Added MPI2_RAID_VOL_FLAGS_OP_MDC define. 25 * 05-12-10 02.00.05 Added MPI2_RAID_VOL_FLAGS_OP_MDC define.
26 * 08-24-10 02.00.06 Added MPI2_RAID_ACTION_COMPATIBILITY_CHECK along with
27 * related structures and defines.
28 * Added product-specific range to RAID Action values.
29
26 * -------------------------------------------------------------------------- 30 * --------------------------------------------------------------------------
27 */ 31 */
28 32
@@ -176,7 +180,9 @@ typedef struct _MPI2_RAID_ACTION_REQUEST
176#define MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED (0x20) 180#define MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED (0x20)
177#define MPI2_RAID_ACTION_START_RAID_FUNCTION (0x21) 181#define MPI2_RAID_ACTION_START_RAID_FUNCTION (0x21)
178#define MPI2_RAID_ACTION_STOP_RAID_FUNCTION (0x22) 182#define MPI2_RAID_ACTION_STOP_RAID_FUNCTION (0x22)
179 183#define MPI2_RAID_ACTION_COMPATIBILITY_CHECK (0x23)
184#define MPI2_RAID_ACTION_MIN_PRODUCT_SPECIFIC (0x80)
185#define MPI2_RAID_ACTION_MAX_PRODUCT_SPECIFIC (0xFF)
180 186
181/* RAID Volume Creation Structure */ 187/* RAID Volume Creation Structure */
182 188
@@ -244,6 +250,23 @@ typedef struct _MPI2_RAID_ONLINE_CAPACITY_EXPANSION
244 Mpi2RaidOnlineCapacityExpansion_t, 250 Mpi2RaidOnlineCapacityExpansion_t,
245 MPI2_POINTER pMpi2RaidOnlineCapacityExpansion_t; 251 MPI2_POINTER pMpi2RaidOnlineCapacityExpansion_t;
246 252
253/* RAID Compatibility Input Structure */
254
255typedef struct _MPI2_RAID_COMPATIBILITY_INPUT_STRUCT {
256 U16 SourceDevHandle; /* 0x00 */
257 U16 CandidateDevHandle; /* 0x02 */
258 U32 Flags; /* 0x04 */
259 U32 Reserved1; /* 0x08 */
260 U32 Reserved2; /* 0x0C */
261} MPI2_RAID_COMPATIBILITY_INPUT_STRUCT,
262MPI2_POINTER PTR_MPI2_RAID_COMPATIBILITY_INPUT_STRUCT,
263Mpi2RaidCompatibilityInputStruct_t,
264MPI2_POINTER pMpi2RaidCompatibilityInputStruct_t;
265
266/* defines for RAID Compatibility Structure Flags field */
267#define MPI2_RAID_COMPAT_SOURCE_IS_VOLUME_FLAG (0x00000002)
268#define MPI2_RAID_COMPAT_REPORT_SOURCE_INFO_FLAG (0x00000001)
269
247 270
248/* RAID Volume Indicator Structure */ 271/* RAID Volume Indicator Structure */
249 272
@@ -263,15 +286,45 @@ typedef struct _MPI2_RAID_VOL_INDICATOR
263#define MPI2_RAID_VOL_FLAGS_OP_RESYNC (0x00000003) 286#define MPI2_RAID_VOL_FLAGS_OP_RESYNC (0x00000003)
264#define MPI2_RAID_VOL_FLAGS_OP_MDC (0x00000004) 287#define MPI2_RAID_VOL_FLAGS_OP_MDC (0x00000004)
265 288
289/* RAID Compatibility Result Structure */
290
291typedef struct _MPI2_RAID_COMPATIBILITY_RESULT_STRUCT {
292 U8 State; /* 0x00 */
293 U8 Reserved1; /* 0x01 */
294 U16 Reserved2; /* 0x02 */
295 U32 GenericAttributes; /* 0x04 */
296 U32 OEMSpecificAttributes; /* 0x08 */
297 U32 Reserved3; /* 0x0C */
298 U32 Reserved4; /* 0x10 */
299} MPI2_RAID_COMPATIBILITY_RESULT_STRUCT,
300MPI2_POINTER PTR_MPI2_RAID_COMPATIBILITY_RESULT_STRUCT,
301Mpi2RaidCompatibilityResultStruct_t,
302MPI2_POINTER pMpi2RaidCompatibilityResultStruct_t;
303
304/* defines for RAID Compatibility Result Structure State field */
305#define MPI2_RAID_COMPAT_STATE_COMPATIBLE (0x00)
306#define MPI2_RAID_COMPAT_STATE_NOT_COMPATIBLE (0x01)
307
308/* defines for RAID Compatibility Result Structure GenericAttributes field */
309#define MPI2_RAID_COMPAT_GENATTRIB_4K_SECTOR (0x00000010)
310
311#define MPI2_RAID_COMPAT_GENATTRIB_MEDIA_MASK (0x0000000C)
312#define MPI2_RAID_COMPAT_GENATTRIB_SOLID_STATE_DRIVE (0x00000008)
313#define MPI2_RAID_COMPAT_GENATTRIB_HARD_DISK_DRIVE (0x00000004)
314
315#define MPI2_RAID_COMPAT_GENATTRIB_PROTOCOL_MASK (0x00000003)
316#define MPI2_RAID_COMPAT_GENATTRIB_SAS_PROTOCOL (0x00000002)
317#define MPI2_RAID_COMPAT_GENATTRIB_SATA_PROTOCOL (0x00000001)
266 318
267/* RAID Action Reply ActionData union */ 319/* RAID Action Reply ActionData union */
268typedef union _MPI2_RAID_ACTION_REPLY_DATA 320typedef union _MPI2_RAID_ACTION_REPLY_DATA
269{ 321{
270 U32 Word[5]; 322 U32 Word[5];
271 MPI2_RAID_VOL_INDICATOR RaidVolumeIndicator; 323 MPI2_RAID_VOL_INDICATOR RaidVolumeIndicator;
272 U16 VolDevHandle; 324 U16 VolDevHandle;
273 U8 VolumeState; 325 U8 VolumeState;
274 U8 PhysDiskNum; 326 U8 PhysDiskNum;
327 MPI2_RAID_COMPATIBILITY_RESULT_STRUCT RaidCompatibilityResult;
275} MPI2_RAID_ACTION_REPLY_DATA, MPI2_POINTER PTR_MPI2_RAID_ACTION_REPLY_DATA, 328} MPI2_RAID_ACTION_REPLY_DATA, MPI2_POINTER PTR_MPI2_RAID_ACTION_REPLY_DATA,
276 Mpi2RaidActionReplyData_t, MPI2_POINTER pMpi2RaidActionReplyData_t; 329 Mpi2RaidActionReplyData_t, MPI2_POINTER pMpi2RaidActionReplyData_t;
277 330