diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2009-12-16 08:25:54 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-02-08 19:19:44 -0500 |
commit | f4af3c14113d1b0d98d5a5e717b8aa1f484065b6 (patch) | |
tree | 6facc8c88224e424e792e8e690774a49cab3e35d /drivers/scsi | |
parent | 50d5c60634673a79f8d88564e10345b50fca7378 (diff) |
[SCSI] mpt2sas: Update driver header to latest MPI Spec.
Update header to latest MPI SPEC revision.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Reviewed-by: Eric Moore <eric.moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2.h | 16 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 25 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_history.txt | 93 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_init.h | 24 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 77 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_sas.h | 6 |
6 files changed, 201 insertions, 40 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h index 914168105297..9958d847a88d 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.13 | 11 | * mpi2.h Version: 02.00.14 |
12 | * | 12 | * |
13 | * Version History | 13 | * Version History |
14 | * --------------- | 14 | * --------------- |
@@ -53,6 +53,10 @@ | |||
53 | * bytes reserved. | 53 | * bytes reserved. |
54 | * Added RAID Accelerator functionality. | 54 | * Added RAID Accelerator functionality. |
55 | * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. | 55 | * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. |
56 | * 10-28-09 02.00.14 Bumped MPI2_HEADER_VERSION_UNIT. | ||
57 | * Added MSI-x index mask and shift for Reply Post Host | ||
58 | * Index register. | ||
59 | * Added function code for Host Based Discovery Action. | ||
56 | * -------------------------------------------------------------------------- | 60 | * -------------------------------------------------------------------------- |
57 | */ | 61 | */ |
58 | 62 | ||
@@ -78,7 +82,7 @@ | |||
78 | #define MPI2_VERSION_02_00 (0x0200) | 82 | #define MPI2_VERSION_02_00 (0x0200) |
79 | 83 | ||
80 | /* versioning for this MPI header set */ | 84 | /* versioning for this MPI header set */ |
81 | #define MPI2_HEADER_VERSION_UNIT (0x0D) | 85 | #define MPI2_HEADER_VERSION_UNIT (0x0E) |
82 | #define MPI2_HEADER_VERSION_DEV (0x00) | 86 | #define MPI2_HEADER_VERSION_DEV (0x00) |
83 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) | 87 | #define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) |
84 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) | 88 | #define MPI2_HEADER_VERSION_UNIT_SHIFT (8) |
@@ -232,9 +236,12 @@ typedef volatile struct _MPI2_SYSTEM_INTERFACE_REGS | |||
232 | #define MPI2_REPLY_FREE_HOST_INDEX_OFFSET (0x00000048) | 236 | #define MPI2_REPLY_FREE_HOST_INDEX_OFFSET (0x00000048) |
233 | 237 | ||
234 | /* | 238 | /* |
235 | * Offset for the Reply Descriptor Post Queue | 239 | * Defines for the Reply Descriptor Post Queue |
236 | */ | 240 | */ |
237 | #define MPI2_REPLY_POST_HOST_INDEX_OFFSET (0x0000006C) | 241 | #define MPI2_REPLY_POST_HOST_INDEX_OFFSET (0x0000006C) |
242 | #define MPI2_REPLY_POST_HOST_INDEX_MASK (0x00FFFFFF) | ||
243 | #define MPI2_RPHI_MSIX_INDEX_MASK (0xFF000000) | ||
244 | #define MPI2_RPHI_MSIX_INDEX_SHIFT (24) | ||
238 | 245 | ||
239 | /* | 246 | /* |
240 | * Defines for the HCBSize and address | 247 | * Defines for the HCBSize and address |
@@ -497,12 +504,13 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION | |||
497 | #define MPI2_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) /* Target Command Buffer Post Base */ | 504 | #define MPI2_FUNCTION_TARGET_CMD_BUF_BASE_POST (0x24) /* Target Command Buffer Post Base */ |
498 | #define MPI2_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) /* Target Command Buffer Post List */ | 505 | #define MPI2_FUNCTION_TARGET_CMD_BUF_LIST_POST (0x25) /* Target Command Buffer Post List */ |
499 | #define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ | 506 | #define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ |
507 | /* Host Based Discovery Action */ | ||
508 | #define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) | ||
500 | 509 | ||
501 | 510 | ||
502 | 511 | ||
503 | /* Doorbell functions */ | 512 | /* Doorbell functions */ |
504 | #define MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) | 513 | #define MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET (0x40) |
505 | /* #define MPI2_FUNCTION_IO_UNIT_RESET (0x41) */ | ||
506 | #define MPI2_FUNCTION_HANDSHAKE (0x42) | 514 | #define MPI2_FUNCTION_HANDSHAKE (0x42) |
507 | 515 | ||
508 | 516 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h index 1611c57a6fdf..cf0ac9f40c97 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.12 | 9 | * mpi2_cnfg.h Version: 02.00.13 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -107,6 +107,8 @@ | |||
107 | * to SAS Device Page 0 Flags field. | 107 | * to SAS Device Page 0 Flags field. |
108 | * Added PhyInfo defines for power condition. | 108 | * Added PhyInfo defines for power condition. |
109 | * Added Ethernet configuration pages. | 109 | * Added Ethernet configuration pages. |
110 | * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY. | ||
111 | * Added SAS PHY Page 4 structure and defines. | ||
110 | * -------------------------------------------------------------------------- | 112 | * -------------------------------------------------------------------------- |
111 | */ | 113 | */ |
112 | 114 | ||
@@ -712,6 +714,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1 | |||
712 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) | 714 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) |
713 | 715 | ||
714 | /* IO Unit Page 1 Flags defines */ | 716 | /* IO Unit Page 1 Flags defines */ |
717 | #define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800) | ||
715 | #define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) | 718 | #define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) |
716 | #define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000) | 719 | #define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000) |
717 | #define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200) | 720 | #define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200) |
@@ -2291,6 +2294,26 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_3 { | |||
2291 | #define MPI2_SASPHY3_PAGEVERSION (0x00) | 2294 | #define MPI2_SASPHY3_PAGEVERSION (0x00) |
2292 | 2295 | ||
2293 | 2296 | ||
2297 | /* SAS PHY Page 4 */ | ||
2298 | |||
2299 | typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_4 { | ||
2300 | MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */ | ||
2301 | U16 Reserved1; /* 0x08 */ | ||
2302 | U8 Reserved2; /* 0x0A */ | ||
2303 | U8 Flags; /* 0x0B */ | ||
2304 | U8 InitialFrame[28]; /* 0x0C */ | ||
2305 | } MPI2_CONFIG_PAGE_SAS_PHY_4, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_4, | ||
2306 | Mpi2SasPhyPage4_t, MPI2_POINTER pMpi2SasPhyPage4_t; | ||
2307 | |||
2308 | #define MPI2_SASPHY4_PAGEVERSION (0x00) | ||
2309 | |||
2310 | /* values for the Flags field */ | ||
2311 | #define MPI2_SASPHY4_FLAGS_FRAME_VALID (0x02) | ||
2312 | #define MPI2_SASPHY4_FLAGS_SATA_FRAME (0x01) | ||
2313 | |||
2314 | |||
2315 | |||
2316 | |||
2294 | /**************************************************************************** | 2317 | /**************************************************************************** |
2295 | * SAS Port Config Pages | 2318 | * SAS Port Config Pages |
2296 | ****************************************************************************/ | 2319 | ****************************************************************************/ |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt index 65fcaa31cb30..c4adf76b49d9 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt +++ b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt | |||
@@ -5,23 +5,24 @@ | |||
5 | Copyright (c) 2000-2009 LSI Corporation. | 5 | Copyright (c) 2000-2009 LSI Corporation. |
6 | 6 | ||
7 | --------------------------------------- | 7 | --------------------------------------- |
8 | Header Set Release Version: 02.00.12 | 8 | Header Set Release Version: 02.00.14 |
9 | Header Set Release Date: 05-06-09 | 9 | Header Set Release Date: 10-28-09 |
10 | --------------------------------------- | 10 | --------------------------------------- |
11 | 11 | ||
12 | Filename Current version Prior version | 12 | Filename Current version Prior version |
13 | ---------- --------------- ------------- | 13 | ---------- --------------- ------------- |
14 | mpi2.h 02.00.12 02.00.11 | 14 | mpi2.h 02.00.14 02.00.13 |
15 | mpi2_cnfg.h 02.00.11 02.00.10 | 15 | mpi2_cnfg.h 02.00.13 02.00.12 |
16 | mpi2_init.h 02.00.07 02.00.06 | 16 | mpi2_init.h 02.00.08 02.00.07 |
17 | mpi2_ioc.h 02.00.11 02.00.10 | 17 | mpi2_ioc.h 02.00.13 02.00.12 |
18 | mpi2_raid.h 02.00.03 02.00.03 | 18 | mpi2_raid.h 02.00.04 02.00.04 |
19 | mpi2_sas.h 02.00.02 02.00.02 | 19 | mpi2_sas.h 02.00.03 02.00.02 |
20 | mpi2_targ.h 02.00.03 02.00.03 | 20 | mpi2_targ.h 02.00.03 02.00.03 |
21 | mpi2_tool.h 02.00.03 02.00.02 | 21 | mpi2_tool.h 02.00.04 02.00.04 |
22 | mpi2_type.h 02.00.00 02.00.00 | 22 | mpi2_type.h 02.00.00 02.00.00 |
23 | mpi2_ra.h 02.00.00 | 23 | mpi2_ra.h 02.00.00 02.00.00 |
24 | mpi2_history.txt 02.00.11 02.00.12 | 24 | mpi2_hbd.h 02.00.00 |
25 | mpi2_history.txt 02.00.14 02.00.13 | ||
25 | 26 | ||
26 | 27 | ||
27 | * Date Version Description | 28 | * Date Version Description |
@@ -65,6 +66,11 @@ mpi2.h | |||
65 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those | 66 | * MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR and made those |
66 | * bytes reserved. | 67 | * bytes reserved. |
67 | * Added RAID Accelerator functionality. | 68 | * Added RAID Accelerator functionality. |
69 | * 07-30-09 02.00.13 Bumped MPI2_HEADER_VERSION_UNIT. | ||
70 | * 10-28-09 02.00.14 Bumped MPI2_HEADER_VERSION_UNIT. | ||
71 | * Added MSI-x index mask and shift for Reply Post Host | ||
72 | * Index register. | ||
73 | * Added function code for Host Based Discovery Action. | ||
68 | * -------------------------------------------------------------------------- | 74 | * -------------------------------------------------------------------------- |
69 | 75 | ||
70 | mpi2_cnfg.h | 76 | mpi2_cnfg.h |
@@ -155,6 +161,15 @@ mpi2_cnfg.h | |||
155 | * Added expander reduced functionality data to SAS | 161 | * Added expander reduced functionality data to SAS |
156 | * Expander Page 0. | 162 | * Expander Page 0. |
157 | * Added SAS PHY Page 2 and SAS PHY Page 3. | 163 | * Added SAS PHY Page 2 and SAS PHY Page 3. |
164 | * 07-30-09 02.00.12 Added IO Unit Page 7. | ||
165 | * Added new device ids. | ||
166 | * Added SAS IO Unit Page 5. | ||
167 | * Added partial and slumber power management capable flags | ||
168 | * to SAS Device Page 0 Flags field. | ||
169 | * Added PhyInfo defines for power condition. | ||
170 | * Added Ethernet configuration pages. | ||
171 | * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY. | ||
172 | * Added SAS PHY Page 4 structure and defines. | ||
158 | * -------------------------------------------------------------------------- | 173 | * -------------------------------------------------------------------------- |
159 | 174 | ||
160 | mpi2_init.h | 175 | mpi2_init.h |
@@ -172,6 +187,10 @@ mpi2_init.h | |||
172 | * Query Asynchronous Event. | 187 | * Query Asynchronous Event. |
173 | * Defined two new bits in the SlotStatus field of the SCSI | 188 | * Defined two new bits in the SlotStatus field of the SCSI |
174 | * Enclosure Processor Request and Reply. | 189 | * Enclosure Processor Request and Reply. |
190 | * 10-28-09 02.00.08 Added defines for decoding the ResponseInfo bytes for | ||
191 | * both SCSI IO Error Reply and SCSI Task Management Reply. | ||
192 | * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY. | ||
193 | * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define. | ||
175 | * -------------------------------------------------------------------------- | 194 | * -------------------------------------------------------------------------- |
176 | 195 | ||
177 | mpi2_ioc.h | 196 | mpi2_ioc.h |
@@ -246,6 +265,20 @@ mpi2_ioc.h | |||
246 | * Added two new reason codes for SAS Device Status Change | 265 | * Added two new reason codes for SAS Device Status Change |
247 | * Event. | 266 | * Event. |
248 | * Added new event: SAS PHY Counter. | 267 | * Added new event: SAS PHY Counter. |
268 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. | ||
269 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. | ||
270 | * Added new product id family for 2208. | ||
271 | * 10-28-09 02.00.13 Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. | ||
272 | * Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. | ||
273 | * Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. | ||
274 | * Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. | ||
275 | * Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. | ||
276 | * Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. | ||
277 | * Added Host Based Discovery Phy Event data. | ||
278 | * Added defines for ProductID Product field | ||
279 | * (MPI2_FW_HEADER_PID_). | ||
280 | * Modified values for SAS ProductID Family | ||
281 | * (MPI2_FW_HEADER_PID_FAMILY_). | ||
249 | * -------------------------------------------------------------------------- | 282 | * -------------------------------------------------------------------------- |
250 | 283 | ||
251 | mpi2_raid.h | 284 | mpi2_raid.h |
@@ -256,6 +289,8 @@ mpi2_raid.h | |||
256 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that | 289 | * 05-21-08 02.00.03 Added MPI2_RAID_VOL_CREATION_NUM_PHYSDISKS so that |
257 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT | 290 | * the PhysDisk array in MPI2_RAID_VOLUME_CREATION_STRUCT |
258 | * can be sized by the build environment. | 291 | * can be sized by the build environment. |
292 | * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of | ||
293 | * VolumeCreationFlags and marked the old one as obsolete. | ||
259 | * -------------------------------------------------------------------------- | 294 | * -------------------------------------------------------------------------- |
260 | 295 | ||
261 | mpi2_sas.h | 296 | mpi2_sas.h |
@@ -264,6 +299,8 @@ mpi2_sas.h | |||
264 | * Control Request. | 299 | * Control Request. |
265 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control | 300 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control |
266 | * Request. | 301 | * Request. |
302 | * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST | ||
303 | * to MPI2_SGE_IO_UNION since it supports chained SGLs. | ||
267 | * -------------------------------------------------------------------------- | 304 | * -------------------------------------------------------------------------- |
268 | 305 | ||
269 | mpi2_targ.h | 306 | mpi2_targ.h |
@@ -283,6 +320,10 @@ mpi2_tool.h | |||
283 | * structures and defines. | 320 | * structures and defines. |
284 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. | 321 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. |
285 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. | 322 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. |
323 | * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request | ||
324 | * and reply messages. | ||
325 | * Added MPI2_DIAG_BUF_TYPE_EXTENDED. | ||
326 | * Incremented MPI2_DIAG_BUF_TYPE_COUNT. | ||
286 | * -------------------------------------------------------------------------- | 327 | * -------------------------------------------------------------------------- |
287 | 328 | ||
288 | mpi2_type.h | 329 | mpi2_type.h |
@@ -293,20 +334,26 @@ mpi2_ra.h | |||
293 | * 05-06-09 02.00.00 Initial version. | 334 | * 05-06-09 02.00.00 Initial version. |
294 | * -------------------------------------------------------------------------- | 335 | * -------------------------------------------------------------------------- |
295 | 336 | ||
337 | mpi2_hbd.h | ||
338 | * 10-28-09 02.00.00 Initial version. | ||
339 | * -------------------------------------------------------------------------- | ||
340 | |||
341 | |||
296 | mpi2_history.txt Parts list history | 342 | mpi2_history.txt Parts list history |
297 | 343 | ||
298 | Filename 02.00.12 | 344 | Filename 02.00.14 02.00.13 02.00.12 |
299 | ---------- -------- | 345 | ---------- -------- -------- -------- |
300 | mpi2.h 02.00.12 | 346 | mpi2.h 02.00.14 02.00.13 02.00.12 |
301 | mpi2_cnfg.h 02.00.11 | 347 | mpi2_cnfg.h 02.00.13 02.00.12 02.00.11 |
302 | mpi2_init.h 02.00.07 | 348 | mpi2_init.h 02.00.08 02.00.07 02.00.07 |
303 | mpi2_ioc.h 02.00.11 | 349 | mpi2_ioc.h 02.00.13 02.00.12 02.00.11 |
304 | mpi2_raid.h 02.00.03 | 350 | mpi2_raid.h 02.00.04 02.00.04 02.00.03 |
305 | mpi2_sas.h 02.00.02 | 351 | mpi2_sas.h 02.00.03 02.00.02 02.00.02 |
306 | mpi2_targ.h 02.00.03 | 352 | mpi2_targ.h 02.00.03 02.00.03 02.00.03 |
307 | mpi2_tool.h 02.00.03 | 353 | mpi2_tool.h 02.00.04 02.00.04 02.00.03 |
308 | mpi2_type.h 02.00.00 | 354 | mpi2_type.h 02.00.00 02.00.00 02.00.00 |
309 | mpi2_ra.h 02.00.00 | 355 | mpi2_ra.h 02.00.00 02.00.00 02.00.00 |
356 | mpi2_hbd.h 02.00.00 | ||
310 | 357 | ||
311 | Filename 02.00.11 02.00.10 02.00.09 02.00.08 02.00.07 02.00.06 | 358 | Filename 02.00.11 02.00.10 02.00.09 02.00.08 02.00.07 02.00.06 |
312 | ---------- -------- -------- -------- -------- -------- -------- | 359 | ---------- -------- -------- -------- -------- -------- -------- |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_init.h b/drivers/scsi/mpt2sas/mpi/mpi2_init.h index 563e56d2e945..6541945e97c3 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_init.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_init.h | |||
@@ -6,7 +6,7 @@ | |||
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.07 | 9 | * mpi2_init.h Version: 02.00.08 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -27,6 +27,10 @@ | |||
27 | * Query Asynchronous Event. | 27 | * Query Asynchronous Event. |
28 | * Defined two new bits in the SlotStatus field of the SCSI | 28 | * Defined two new bits in the SlotStatus field of the SCSI |
29 | * Enclosure Processor Request and Reply. | 29 | * Enclosure Processor Request and Reply. |
30 | * 10-28-09 02.00.08 Added defines for decoding the ResponseInfo bytes for | ||
31 | * both SCSI IO Error Reply and SCSI Task Management Reply. | ||
32 | * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY. | ||
33 | * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define. | ||
30 | * -------------------------------------------------------------------------- | 34 | * -------------------------------------------------------------------------- |
31 | */ | 35 | */ |
32 | 36 | ||
@@ -254,6 +258,11 @@ typedef struct _MPI2_SCSI_IO_REPLY | |||
254 | #define MPI2_SCSI_STATE_AUTOSENSE_FAILED (0x02) | 258 | #define MPI2_SCSI_STATE_AUTOSENSE_FAILED (0x02) |
255 | #define MPI2_SCSI_STATE_AUTOSENSE_VALID (0x01) | 259 | #define MPI2_SCSI_STATE_AUTOSENSE_VALID (0x01) |
256 | 260 | ||
261 | /* masks and shifts for the ResponseInfo field */ | ||
262 | |||
263 | #define MPI2_SCSI_RI_MASK_REASONCODE (0x000000FF) | ||
264 | #define MPI2_SCSI_RI_SHIFT_REASONCODE (0) | ||
265 | |||
257 | #define MPI2_SCSI_TASKTAG_UNKNOWN (0xFFFF) | 266 | #define MPI2_SCSI_TASKTAG_UNKNOWN (0xFFFF) |
258 | 267 | ||
259 | 268 | ||
@@ -327,6 +336,7 @@ typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY | |||
327 | U16 IOCStatus; /* 0x0E */ | 336 | U16 IOCStatus; /* 0x0E */ |
328 | U32 IOCLogInfo; /* 0x10 */ | 337 | U32 IOCLogInfo; /* 0x10 */ |
329 | U32 TerminationCount; /* 0x14 */ | 338 | U32 TerminationCount; /* 0x14 */ |
339 | U32 ResponseInfo; /* 0x18 */ | ||
330 | } MPI2_SCSI_TASK_MANAGE_REPLY, | 340 | } MPI2_SCSI_TASK_MANAGE_REPLY, |
331 | MPI2_POINTER PTR_MPI2_SCSI_TASK_MANAGE_REPLY, | 341 | MPI2_POINTER PTR_MPI2_SCSI_TASK_MANAGE_REPLY, |
332 | Mpi2SCSITaskManagementReply_t, MPI2_POINTER pMpi2SCSIManagementReply_t; | 342 | Mpi2SCSITaskManagementReply_t, MPI2_POINTER pMpi2SCSIManagementReply_t; |
@@ -339,8 +349,20 @@ typedef struct _MPI2_SCSI_TASK_MANAGE_REPLY | |||
339 | #define MPI2_SCSITASKMGMT_RSP_TM_FAILED (0x05) | 349 | #define MPI2_SCSITASKMGMT_RSP_TM_FAILED (0x05) |
340 | #define MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) | 350 | #define MPI2_SCSITASKMGMT_RSP_TM_SUCCEEDED (0x08) |
341 | #define MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) | 351 | #define MPI2_SCSITASKMGMT_RSP_TM_INVALID_LUN (0x09) |
352 | #define MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG (0x0A) | ||
342 | #define MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) | 353 | #define MPI2_SCSITASKMGMT_RSP_IO_QUEUED_ON_IOC (0x80) |
343 | 354 | ||
355 | /* masks and shifts for the ResponseInfo field */ | ||
356 | |||
357 | #define MPI2_SCSITASKMGMT_RI_MASK_REASONCODE (0x000000FF) | ||
358 | #define MPI2_SCSITASKMGMT_RI_SHIFT_REASONCODE (0) | ||
359 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI2 (0x0000FF00) | ||
360 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI2 (8) | ||
361 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI1 (0x00FF0000) | ||
362 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI1 (16) | ||
363 | #define MPI2_SCSITASKMGMT_RI_MASK_ARI0 (0xFF000000) | ||
364 | #define MPI2_SCSITASKMGMT_RI_SHIFT_ARI0 (24) | ||
365 | |||
344 | 366 | ||
345 | /**************************************************************************** | 367 | /**************************************************************************** |
346 | * SCSI Enclosure Processor messages | 368 | * SCSI Enclosure Processor messages |
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h index ea51ce868690..754938422f6a 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.12 | 9 | * mpi2_ioc.h Version: 02.00.13 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -87,6 +87,17 @@ | |||
87 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. | 87 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. |
88 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. | 88 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. |
89 | * Added new product id family for 2208. | 89 | * Added new product id family for 2208. |
90 | * 10-28-09 02.00.13 Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. | ||
91 | * Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. | ||
92 | * Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. | ||
93 | * Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. | ||
94 | * Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. | ||
95 | * Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. | ||
96 | * Added Host Based Discovery Phy Event data. | ||
97 | * Added defines for ProductID Product field | ||
98 | * (MPI2_FW_HEADER_PID_). | ||
99 | * Modified values for SAS ProductID Family | ||
100 | * (MPI2_FW_HEADER_PID_FAMILY_). | ||
90 | * -------------------------------------------------------------------------- | 101 | * -------------------------------------------------------------------------- |
91 | */ | 102 | */ |
92 | 103 | ||
@@ -119,8 +130,10 @@ typedef struct _MPI2_IOC_INIT_REQUEST | |||
119 | U16 MsgVersion; /* 0x0C */ | 130 | U16 MsgVersion; /* 0x0C */ |
120 | U16 HeaderVersion; /* 0x0E */ | 131 | U16 HeaderVersion; /* 0x0E */ |
121 | U32 Reserved5; /* 0x10 */ | 132 | U32 Reserved5; /* 0x10 */ |
122 | U32 Reserved6; /* 0x14 */ | 133 | U16 Reserved6; /* 0x14 */ |
123 | U16 Reserved7; /* 0x18 */ | 134 | U8 Reserved7; /* 0x16 */ |
135 | U8 HostMSIxVectors; /* 0x17 */ | ||
136 | U16 Reserved8; /* 0x18 */ | ||
124 | U16 SystemRequestFrameSize; /* 0x1A */ | 137 | U16 SystemRequestFrameSize; /* 0x1A */ |
125 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ | 138 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ |
126 | U16 ReplyFreeQueueDepth; /* 0x1E */ | 139 | U16 ReplyFreeQueueDepth; /* 0x1E */ |
@@ -215,7 +228,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
215 | U8 MaxChainDepth; /* 0x14 */ | 228 | U8 MaxChainDepth; /* 0x14 */ |
216 | U8 WhoInit; /* 0x15 */ | 229 | U8 WhoInit; /* 0x15 */ |
217 | U8 NumberOfPorts; /* 0x16 */ | 230 | U8 NumberOfPorts; /* 0x16 */ |
218 | U8 Reserved2; /* 0x17 */ | 231 | U8 MaxMSIxVectors; /* 0x17 */ |
219 | U16 RequestCredit; /* 0x18 */ | 232 | U16 RequestCredit; /* 0x18 */ |
220 | U16 ProductID; /* 0x1A */ | 233 | U16 ProductID; /* 0x1A */ |
221 | U32 IOCCapabilities; /* 0x1C */ | 234 | U32 IOCCapabilities; /* 0x1C */ |
@@ -233,7 +246,8 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
233 | U8 MaxVolumes; /* 0x37 */ | 246 | U8 MaxVolumes; /* 0x37 */ |
234 | U16 MaxDevHandle; /* 0x38 */ | 247 | U16 MaxDevHandle; /* 0x38 */ |
235 | U16 MaxPersistentEntries; /* 0x3A */ | 248 | U16 MaxPersistentEntries; /* 0x3A */ |
236 | U32 Reserved4; /* 0x3C */ | 249 | U16 MinDevHandle; /* 0x3C */ |
250 | U16 Reserved4; /* 0x3E */ | ||
237 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, | 251 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, |
238 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; | 252 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; |
239 | 253 | ||
@@ -269,6 +283,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
269 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ | 283 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ |
270 | 284 | ||
271 | /* IOCCapabilities */ | 285 | /* IOCCapabilities */ |
286 | #define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000) | ||
272 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) | 287 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) |
273 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) | 288 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) |
274 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) | 289 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) |
@@ -453,6 +468,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY | |||
453 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) | 468 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) |
454 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) | 469 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) |
455 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) | 470 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) |
471 | #define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) | ||
456 | 472 | ||
457 | 473 | ||
458 | /* Log Entry Added Event data */ | 474 | /* Log Entry Added Event data */ |
@@ -793,6 +809,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST | |||
793 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; | 809 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; |
794 | 810 | ||
795 | /* values for the ExpStatus field */ | 811 | /* values for the ExpStatus field */ |
812 | #define MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER (0x00) | ||
796 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) | 813 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) |
797 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) | 814 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) |
798 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) | 815 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) |
@@ -878,6 +895,44 @@ typedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER { | |||
878 | * */ | 895 | * */ |
879 | 896 | ||
880 | 897 | ||
898 | /* Host Based Discovery Phy Event data */ | ||
899 | |||
900 | typedef struct _MPI2_EVENT_HBD_PHY_SAS { | ||
901 | U8 Flags; /* 0x00 */ | ||
902 | U8 NegotiatedLinkRate; /* 0x01 */ | ||
903 | U8 PhyNum; /* 0x02 */ | ||
904 | U8 PhysicalPort; /* 0x03 */ | ||
905 | U32 Reserved1; /* 0x04 */ | ||
906 | U8 InitialFrame[28]; /* 0x08 */ | ||
907 | } MPI2_EVENT_HBD_PHY_SAS, MPI2_POINTER PTR_MPI2_EVENT_HBD_PHY_SAS, | ||
908 | Mpi2EventHbdPhySas_t, MPI2_POINTER pMpi2EventHbdPhySas_t; | ||
909 | |||
910 | /* values for the Flags field */ | ||
911 | #define MPI2_EVENT_HBD_SAS_FLAGS_FRAME_VALID (0x02) | ||
912 | #define MPI2_EVENT_HBD_SAS_FLAGS_SATA_FRAME (0x01) | ||
913 | |||
914 | /* use MPI2_SAS_NEG_LINK_RATE_ defines from mpi2_cnfg.h for | ||
915 | * the NegotiatedLinkRate field */ | ||
916 | |||
917 | typedef union _MPI2_EVENT_HBD_DESCRIPTOR { | ||
918 | MPI2_EVENT_HBD_PHY_SAS Sas; | ||
919 | } MPI2_EVENT_HBD_DESCRIPTOR, MPI2_POINTER PTR_MPI2_EVENT_HBD_DESCRIPTOR, | ||
920 | Mpi2EventHbdDescriptor_t, MPI2_POINTER pMpi2EventHbdDescriptor_t; | ||
921 | |||
922 | typedef struct _MPI2_EVENT_DATA_HBD_PHY { | ||
923 | U8 DescriptorType; /* 0x00 */ | ||
924 | U8 Reserved1; /* 0x01 */ | ||
925 | U16 Reserved2; /* 0x02 */ | ||
926 | U32 Reserved3; /* 0x04 */ | ||
927 | MPI2_EVENT_HBD_DESCRIPTOR Descriptor; /* 0x08 */ | ||
928 | } MPI2_EVENT_DATA_HBD_PHY, MPI2_POINTER PTR_MPI2_EVENT_DATA_HBD_PHY, | ||
929 | Mpi2EventDataHbdPhy_t, MPI2_POINTER pMpi2EventDataMpi2EventDataHbdPhy_t; | ||
930 | |||
931 | /* values for the DescriptorType field */ | ||
932 | #define MPI2_EVENT_HBD_DT_SAS (0x01) | ||
933 | |||
934 | |||
935 | |||
881 | /**************************************************************************** | 936 | /**************************************************************************** |
882 | * EventAck message | 937 | * EventAck message |
883 | ****************************************************************************/ | 938 | ****************************************************************************/ |
@@ -1126,13 +1181,17 @@ typedef struct _MPI2_FW_IMAGE_HEADER | |||
1126 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) | 1181 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) |
1127 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) | 1182 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) |
1128 | 1183 | ||
1129 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) | 1184 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) |
1130 | #define MPI2_FW_HEADER_PID_PROD_A (0x0000) | 1185 | #define MPI2_FW_HEADER_PID_PROD_A (0x0000) |
1186 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) | ||
1187 | #define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200) | ||
1188 | #define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700) | ||
1189 | |||
1131 | 1190 | ||
1132 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) | 1191 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) |
1133 | /* SAS */ | 1192 | /* SAS */ |
1134 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0010) | 1193 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0013) |
1135 | #define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0011) | 1194 | #define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0014) |
1136 | 1195 | ||
1137 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ | 1196 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ |
1138 | 1197 | ||
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h index 8a42b136cf53..2d8aeed51392 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Title: MPI Serial Attached SCSI structures and definitions | 6 | * Title: MPI Serial Attached SCSI structures and definitions |
7 | * Creation Date: February 9, 2007 | 7 | * Creation Date: February 9, 2007 |
8 | * | 8 | * |
9 | * mpi2.h Version: 02.00.02 | 9 | * mpi2.h Version: 02.00.03 |
10 | * | 10 | * |
11 | * Version History | 11 | * Version History |
12 | * --------------- | 12 | * --------------- |
@@ -18,6 +18,8 @@ | |||
18 | * Control Request. | 18 | * Control Request. |
19 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control | 19 | * 10-02-08 02.00.02 Added Set IOC Parameter Operation to SAS IO Unit Control |
20 | * Request. | 20 | * Request. |
21 | * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST | ||
22 | * to MPI2_SGE_IO_UNION since it supports chained SGLs. | ||
21 | * -------------------------------------------------------------------------- | 23 | * -------------------------------------------------------------------------- |
22 | */ | 24 | */ |
23 | 25 | ||
@@ -160,7 +162,7 @@ typedef struct _MPI2_SATA_PASSTHROUGH_REQUEST | |||
160 | U32 Reserved4; /* 0x14 */ | 162 | U32 Reserved4; /* 0x14 */ |
161 | U32 DataLength; /* 0x18 */ | 163 | U32 DataLength; /* 0x18 */ |
162 | U8 CommandFIS[20]; /* 0x1C */ | 164 | U8 CommandFIS[20]; /* 0x1C */ |
163 | MPI2_SIMPLE_SGE_UNION SGL; /* 0x20 */ | 165 | MPI2_SGE_IO_UNION SGL; /* 0x20 */ |
164 | } MPI2_SATA_PASSTHROUGH_REQUEST, MPI2_POINTER PTR_MPI2_SATA_PASSTHROUGH_REQUEST, | 166 | } MPI2_SATA_PASSTHROUGH_REQUEST, MPI2_POINTER PTR_MPI2_SATA_PASSTHROUGH_REQUEST, |
165 | Mpi2SataPassthroughRequest_t, MPI2_POINTER pMpi2SataPassthroughRequest_t; | 167 | Mpi2SataPassthroughRequest_t, MPI2_POINTER pMpi2SataPassthroughRequest_t; |
166 | 168 | ||