diff options
| author | Christoph Hellwig <hch@lst.de> | 2005-08-18 10:24:26 -0400 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.(none)> | 2005-09-04 20:48:39 -0400 |
| commit | ccf3b7bd26b242b39d54148ea2117295721681d3 (patch) | |
| tree | a4fa0be9b769b57075a7bff9b5f55ec96c8132d1 /drivers/message/fusion/lsi/mpi_init.h | |
| parent | 69218ee5186aded6c78e12e083e073d000ff2e9b (diff) | |
[SCSI] fusion: update LSI headers
Acked by: Moore, Eric Dean <Eric.Moore@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/lsi/mpi_init.h')
| -rw-r--r-- | drivers/message/fusion/lsi/mpi_init.h | 203 |
1 files changed, 202 insertions, 1 deletions
diff --git a/drivers/message/fusion/lsi/mpi_init.h b/drivers/message/fusion/lsi/mpi_init.h index aca035801a86..d5af75afbd94 100644 --- a/drivers/message/fusion/lsi/mpi_init.h +++ b/drivers/message/fusion/lsi/mpi_init.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Title: MPI initiator mode messages and structures | 6 | * Title: MPI initiator mode messages and structures |
| 7 | * Creation Date: June 8, 2000 | 7 | * Creation Date: June 8, 2000 |
| 8 | * | 8 | * |
| 9 | * mpi_init.h Version: 01.05.04 | 9 | * mpi_init.h Version: 01.05.05 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -48,6 +48,8 @@ | |||
| 48 | * Modified SCSI Enclosure Processor Request and Reply to | 48 | * Modified SCSI Enclosure Processor Request and Reply to |
| 49 | * support Enclosure/Slot addressing rather than WWID | 49 | * support Enclosure/Slot addressing rather than WWID |
| 50 | * addressing. | 50 | * addressing. |
| 51 | * 06-24-05 01.05.05 Added SCSI IO 32 structures and defines. | ||
| 52 | * Added four new defines for SEP SlotStatus. | ||
| 51 | * -------------------------------------------------------------------------- | 53 | * -------------------------------------------------------------------------- |
| 52 | */ | 54 | */ |
| 53 | 55 | ||
| @@ -203,6 +205,197 @@ typedef struct _MSG_SCSI_IO_REPLY | |||
| 203 | 205 | ||
| 204 | 206 | ||
| 205 | /****************************************************************************/ | 207 | /****************************************************************************/ |
| 208 | /* SCSI IO 32 messages and associated structures */ | ||
| 209 | /****************************************************************************/ | ||
| 210 | |||
| 211 | typedef struct | ||
| 212 | { | ||
| 213 | U8 CDB[20]; /* 00h */ | ||
| 214 | U32 PrimaryReferenceTag; /* 14h */ | ||
| 215 | U16 PrimaryApplicationTag; /* 18h */ | ||
| 216 | U16 PrimaryApplicationTagMask; /* 1Ah */ | ||
| 217 | U32 TransferLength; /* 1Ch */ | ||
| 218 | } MPI_SCSI_IO32_CDB_EEDP32, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP32, | ||
| 219 | MpiScsiIo32CdbEedp32_t, MPI_POINTER pMpiScsiIo32CdbEedp32_t; | ||
| 220 | |||
| 221 | typedef struct | ||
| 222 | { | ||
| 223 | U8 CDB[16]; /* 00h */ | ||
| 224 | U32 DataLength; /* 10h */ | ||
| 225 | U32 PrimaryReferenceTag; /* 14h */ | ||
| 226 | U16 PrimaryApplicationTag; /* 18h */ | ||
| 227 | U16 PrimaryApplicationTagMask; /* 1Ah */ | ||
| 228 | U32 TransferLength; /* 1Ch */ | ||
| 229 | } MPI_SCSI_IO32_CDB_EEDP16, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_EEDP16, | ||
| 230 | MpiScsiIo32CdbEedp16_t, MPI_POINTER pMpiScsiIo32CdbEedp16_t; | ||
| 231 | |||
| 232 | typedef union | ||
| 233 | { | ||
| 234 | U8 CDB32[32]; | ||
| 235 | MPI_SCSI_IO32_CDB_EEDP32 EEDP32; | ||
| 236 | MPI_SCSI_IO32_CDB_EEDP16 EEDP16; | ||
| 237 | SGE_SIMPLE_UNION SGE; | ||
| 238 | } MPI_SCSI_IO32_CDB_UNION, MPI_POINTER PTR_MPI_SCSI_IO32_CDB_UNION, | ||
| 239 | MpiScsiIo32Cdb_t, MPI_POINTER pMpiScsiIo32Cdb_t; | ||
| 240 | |||
| 241 | typedef struct | ||
| 242 | { | ||
| 243 | U8 TargetID; /* 00h */ | ||
| 244 | U8 Bus; /* 01h */ | ||
| 245 | U16 Reserved1; /* 02h */ | ||
| 246 | U32 Reserved2; /* 04h */ | ||
| 247 | } MPI_SCSI_IO32_BUS_TARGET_ID_FORM, MPI_POINTER PTR_MPI_SCSI_IO32_BUS_TARGET_ID_FORM, | ||
| 248 | MpiScsiIo32BusTargetIdForm_t, MPI_POINTER pMpiScsiIo32BusTargetIdForm_t; | ||
| 249 | |||
| 250 | typedef union | ||
| 251 | { | ||
| 252 | MPI_SCSI_IO32_BUS_TARGET_ID_FORM SCSIID; | ||
| 253 | U64 WWID; | ||
| 254 | } MPI_SCSI_IO32_ADDRESS, MPI_POINTER PTR_MPI_SCSI_IO32_ADDRESS, | ||
| 255 | MpiScsiIo32Address_t, MPI_POINTER pMpiScsiIo32Address_t; | ||
| 256 | |||
| 257 | typedef struct _MSG_SCSI_IO32_REQUEST | ||
| 258 | { | ||
| 259 | U8 Port; /* 00h */ | ||
| 260 | U8 Reserved1; /* 01h */ | ||
| 261 | U8 ChainOffset; /* 02h */ | ||
| 262 | U8 Function; /* 03h */ | ||
| 263 | U8 CDBLength; /* 04h */ | ||
| 264 | U8 SenseBufferLength; /* 05h */ | ||
| 265 | U8 Flags; /* 06h */ | ||
| 266 | U8 MsgFlags; /* 07h */ | ||
| 267 | U32 MsgContext; /* 08h */ | ||
| 268 | U8 LUN[8]; /* 0Ch */ | ||
| 269 | U32 Control; /* 14h */ | ||
| 270 | MPI_SCSI_IO32_CDB_UNION CDB; /* 18h */ | ||
| 271 | U32 DataLength; /* 38h */ | ||
| 272 | U32 BidirectionalDataLength; /* 3Ch */ | ||
| 273 | U32 SecondaryReferenceTag; /* 40h */ | ||
| 274 | U16 SecondaryApplicationTag; /* 44h */ | ||
| 275 | U16 Reserved2; /* 46h */ | ||
| 276 | U16 EEDPFlags; /* 48h */ | ||
| 277 | U16 ApplicationTagTranslationMask; /* 4Ah */ | ||
| 278 | U32 EEDPBlockSize; /* 4Ch */ | ||
| 279 | MPI_SCSI_IO32_ADDRESS DeviceAddress; /* 50h */ | ||
| 280 | U8 SGLOffset0; /* 58h */ | ||
| 281 | U8 SGLOffset1; /* 59h */ | ||
| 282 | U8 SGLOffset2; /* 5Ah */ | ||
| 283 | U8 SGLOffset3; /* 5Bh */ | ||
| 284 | U32 Reserved3; /* 5Ch */ | ||
| 285 | U32 Reserved4; /* 60h */ | ||
| 286 | U32 SenseBufferLowAddr; /* 64h */ | ||
| 287 | SGE_IO_UNION SGL; /* 68h */ | ||
| 288 | } MSG_SCSI_IO32_REQUEST, MPI_POINTER PTR_MSG_SCSI_IO32_REQUEST, | ||
| 289 | SCSIIO32Request_t, MPI_POINTER pSCSIIO32Request_t; | ||
| 290 | |||
| 291 | /* SCSI IO 32 MsgFlags bits */ | ||
| 292 | #define MPI_SCSIIO32_MSGFLGS_SENSE_WIDTH (0x01) | ||
| 293 | #define MPI_SCSIIO32_MSGFLGS_SENSE_WIDTH_32 (0x00) | ||
| 294 | #define MPI_SCSIIO32_MSGFLGS_SENSE_WIDTH_64 (0x01) | ||
| 295 | |||
| 296 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOCATION (0x02) | ||
| 297 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_HOST (0x00) | ||
| 298 | #define MPI_SCSIIO32_MSGFLGS_SENSE_LOC_IOC (0x02) | ||
| 299 | |||
| 300 | #define MPI_SCSIIO32_MSGFLGS_CMD_DETERMINES_DATA_DIR (0x04) | ||
| 301 | #define MPI_SCSIIO32_MSGFLGS_SGL_OFFSETS_CHAINS (0x08) | ||
| 302 | #define MPI_SCSIIO32_MSGFLGS_MULTICAST (0x10) | ||
| 303 | #define MPI_SCSIIO32_MSGFLGS_BIDIRECTIONAL (0x20) | ||
| 304 | #define MPI_SCSIIO32_MSGFLGS_LARGE_CDB (0x40) | ||
| 305 | |||
| 306 | /* SCSI IO 32 Flags bits */ | ||
| 307 | #define MPI_SCSIIO32_FLAGS_FORM_MASK (0x03) | ||
| 308 | #define MPI_SCSIIO32_FLAGS_FORM_SCSIID (0x00) | ||
| 309 | #define MPI_SCSIIO32_FLAGS_FORM_WWID (0x01) | ||
| 310 | |||
| 311 | /* SCSI IO 32 LUN fields */ | ||
| 312 | #define MPI_SCSIIO32_LUN_FIRST_LEVEL_ADDRESSING (0x0000FFFF) | ||
| 313 | #define MPI_SCSIIO32_LUN_SECOND_LEVEL_ADDRESSING (0xFFFF0000) | ||
| 314 | #define MPI_SCSIIO32_LUN_THIRD_LEVEL_ADDRESSING (0x0000FFFF) | ||
| 315 | #define MPI_SCSIIO32_LUN_FOURTH_LEVEL_ADDRESSING (0xFFFF0000) | ||
| 316 | #define MPI_SCSIIO32_LUN_LEVEL_1_WORD (0xFF00) | ||
| 317 | #define MPI_SCSIIO32_LUN_LEVEL_1_DWORD (0x0000FF00) | ||
| 318 | |||
| 319 | /* SCSI IO 32 Control bits */ | ||
| 320 | #define MPI_SCSIIO32_CONTROL_DATADIRECTION_MASK (0x03000000) | ||
| 321 | #define MPI_SCSIIO32_CONTROL_NODATATRANSFER (0x00000000) | ||
| 322 | #define MPI_SCSIIO32_CONTROL_WRITE (0x01000000) | ||
| 323 | #define MPI_SCSIIO32_CONTROL_READ (0x02000000) | ||
| 324 | #define MPI_SCSIIO32_CONTROL_BIDIRECTIONAL (0x03000000) | ||
| 325 | |||
| 326 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_MASK (0xFC000000) | ||
| 327 | #define MPI_SCSIIO32_CONTROL_ADDCDBLEN_SHIFT (26) | ||
| 328 | |||
| 329 | #define MPI_SCSIIO32_CONTROL_TASKATTRIBUTE_MASK (0x00000700) | ||
| 330 | #define MPI_SCSIIO32_CONTROL_SIMPLEQ (0x00000000) | ||
| 331 | #define MPI_SCSIIO32_CONTROL_HEADOFQ (0x00000100) | ||
| 332 | #define MPI_SCSIIO32_CONTROL_ORDEREDQ (0x00000200) | ||
| 333 | #define MPI_SCSIIO32_CONTROL_ACAQ (0x00000400) | ||
| 334 | #define MPI_SCSIIO32_CONTROL_UNTAGGED (0x00000500) | ||
| 335 | #define MPI_SCSIIO32_CONTROL_NO_DISCONNECT (0x00000700) | ||
| 336 | |||
| 337 | #define MPI_SCSIIO32_CONTROL_TASKMANAGE_MASK (0x00FF0000) | ||
| 338 | #define MPI_SCSIIO32_CONTROL_OBSOLETE (0x00800000) | ||
| 339 | #define MPI_SCSIIO32_CONTROL_CLEAR_ACA_RSV (0x00400000) | ||
| 340 | #define MPI_SCSIIO32_CONTROL_TARGET_RESET (0x00200000) | ||
| 341 | #define MPI_SCSIIO32_CONTROL_LUN_RESET_RSV (0x00100000) | ||
| 342 | #define MPI_SCSIIO32_CONTROL_RESERVED (0x00080000) | ||
| 343 | #define MPI_SCSIIO32_CONTROL_CLR_TASK_SET_RSV (0x00040000) | ||
| 344 | #define MPI_SCSIIO32_CONTROL_ABORT_TASK_SET (0x00020000) | ||
| 345 | #define MPI_SCSIIO32_CONTROL_RESERVED2 (0x00010000) | ||
| 346 | |||
| 347 | /* SCSI IO 32 EEDPFlags */ | ||
| 348 | #define MPI_SCSIIO32_EEDPFLAGS_MASK_OP (0x0007) | ||
| 349 | #define MPI_SCSIIO32_EEDPFLAGS_NOOP_OP (0x0000) | ||
| 350 | #define MPI_SCSIIO32_EEDPFLAGS_CHK_OP (0x0001) | ||
| 351 | #define MPI_SCSIIO32_EEDPFLAGS_STRIP_OP (0x0002) | ||
| 352 | #define MPI_SCSIIO32_EEDPFLAGS_CHKRM_OP (0x0003) | ||
| 353 | #define MPI_SCSIIO32_EEDPFLAGS_INSERT_OP (0x0004) | ||
| 354 | #define MPI_SCSIIO32_EEDPFLAGS_REPLACE_OP (0x0006) | ||
| 355 | #define MPI_SCSIIO32_EEDPFLAGS_CHKREGEN_OP (0x0007) | ||
| 356 | |||
| 357 | #define MPI_SCSIIO32_EEDPFLAGS_PASS_REF_TAG (0x0008) | ||
| 358 | #define MPI_SCSIIO32_EEDPFLAGS_8_9THS_MODE (0x0010) | ||
| 359 | |||
| 360 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_MASK (0x0700) | ||
| 361 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_GUARD (0x0100) | ||
| 362 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_REFTAG (0x0200) | ||
| 363 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_LBATAG (0x0400) | ||
| 364 | #define MPI_SCSIIO32_EEDPFLAGS_T10_CHK_SHIFT (8) | ||
| 365 | |||
| 366 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_APPTAG (0x1000) | ||
| 367 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_APPTAG (0x2000) | ||
| 368 | #define MPI_SCSIIO32_EEDPFLAGS_INC_SEC_REFTAG (0x4000) | ||
| 369 | #define MPI_SCSIIO32_EEDPFLAGS_INC_PRI_REFTAG (0x8000) | ||
| 370 | |||
| 371 | |||
| 372 | /* SCSIIO32 IO reply structure */ | ||
| 373 | typedef struct _MSG_SCSIIO32_IO_REPLY | ||
| 374 | { | ||
| 375 | U8 Port; /* 00h */ | ||
| 376 | U8 Reserved1; /* 01h */ | ||
| 377 | U8 MsgLength; /* 02h */ | ||
| 378 | U8 Function; /* 03h */ | ||
| 379 | U8 CDBLength; /* 04h */ | ||
| 380 | U8 SenseBufferLength; /* 05h */ | ||
| 381 | U8 Flags; /* 06h */ | ||
| 382 | U8 MsgFlags; /* 07h */ | ||
| 383 | U32 MsgContext; /* 08h */ | ||
| 384 | U8 SCSIStatus; /* 0Ch */ | ||
| 385 | U8 SCSIState; /* 0Dh */ | ||
| 386 | U16 IOCStatus; /* 0Eh */ | ||
| 387 | U32 IOCLogInfo; /* 10h */ | ||
| 388 | U32 TransferCount; /* 14h */ | ||
| 389 | U32 SenseCount; /* 18h */ | ||
| 390 | U32 ResponseInfo; /* 1Ch */ | ||
| 391 | U16 TaskTag; /* 20h */ | ||
| 392 | U16 Reserved2; /* 22h */ | ||
| 393 | U32 BidirectionalTransferCount; /* 24h */ | ||
| 394 | } MSG_SCSIIO32_IO_REPLY, MPI_POINTER PTR_MSG_SCSIIO32_IO_REPLY, | ||
| 395 | SCSIIO32Reply_t, MPI_POINTER pSCSIIO32Reply_t; | ||
| 396 | |||
| 397 | |||
| 398 | /****************************************************************************/ | ||
| 206 | /* SCSI Task Management messages */ | 399 | /* SCSI Task Management messages */ |
| 207 | /****************************************************************************/ | 400 | /****************************************************************************/ |
| 208 | 401 | ||
| @@ -310,10 +503,14 @@ typedef struct _MSG_SEP_REQUEST | |||
| 310 | #define MPI_SEP_REQ_SLOTSTATUS_UNCONFIGURED (0x00000080) | 503 | #define MPI_SEP_REQ_SLOTSTATUS_UNCONFIGURED (0x00000080) |
| 311 | #define MPI_SEP_REQ_SLOTSTATUS_HOT_SPARE (0x00000100) | 504 | #define MPI_SEP_REQ_SLOTSTATUS_HOT_SPARE (0x00000100) |
| 312 | #define MPI_SEP_REQ_SLOTSTATUS_REBUILD_STOPPED (0x00000200) | 505 | #define MPI_SEP_REQ_SLOTSTATUS_REBUILD_STOPPED (0x00000200) |
| 506 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_CONSISTENCY_CHECK (0x00001000) | ||
| 507 | #define MPI_SEP_REQ_SLOTSTATUS_DISABLE (0x00002000) | ||
| 508 | #define MPI_SEP_REQ_SLOTSTATUS_REQ_RESERVED_DEVICE (0x00004000) | ||
| 313 | #define MPI_SEP_REQ_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) | 509 | #define MPI_SEP_REQ_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) |
| 314 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_REMOVE (0x00040000) | 510 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_REMOVE (0x00040000) |
| 315 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_INSERT (0x00080000) | 511 | #define MPI_SEP_REQ_SLOTSTATUS_REQUEST_INSERT (0x00080000) |
| 316 | #define MPI_SEP_REQ_SLOTSTATUS_DO_NOT_MOVE (0x00400000) | 512 | #define MPI_SEP_REQ_SLOTSTATUS_DO_NOT_MOVE (0x00400000) |
| 513 | #define MPI_SEP_REQ_SLOTSTATUS_ACTIVE (0x00800000) | ||
| 317 | #define MPI_SEP_REQ_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) | 514 | #define MPI_SEP_REQ_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) |
| 318 | #define MPI_SEP_REQ_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) | 515 | #define MPI_SEP_REQ_SLOTSTATUS_A_ENABLE_BYPASS (0x08000000) |
| 319 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_OFF (0x10000000) | 516 | #define MPI_SEP_REQ_SLOTSTATUS_DEV_OFF (0x10000000) |
| @@ -352,11 +549,15 @@ typedef struct _MSG_SEP_REPLY | |||
| 352 | #define MPI_SEP_REPLY_SLOTSTATUS_UNCONFIGURED (0x00000080) | 549 | #define MPI_SEP_REPLY_SLOTSTATUS_UNCONFIGURED (0x00000080) |
| 353 | #define MPI_SEP_REPLY_SLOTSTATUS_HOT_SPARE (0x00000100) | 550 | #define MPI_SEP_REPLY_SLOTSTATUS_HOT_SPARE (0x00000100) |
| 354 | #define MPI_SEP_REPLY_SLOTSTATUS_REBUILD_STOPPED (0x00000200) | 551 | #define MPI_SEP_REPLY_SLOTSTATUS_REBUILD_STOPPED (0x00000200) |
| 552 | #define MPI_SEP_REPLY_SLOTSTATUS_CONSISTENCY_CHECK (0x00001000) | ||
| 553 | #define MPI_SEP_REPLY_SLOTSTATUS_DISABLE (0x00002000) | ||
| 554 | #define MPI_SEP_REPLY_SLOTSTATUS_RESERVED_DEVICE (0x00004000) | ||
| 355 | #define MPI_SEP_REPLY_SLOTSTATUS_REPORT (0x00010000) | 555 | #define MPI_SEP_REPLY_SLOTSTATUS_REPORT (0x00010000) |
| 356 | #define MPI_SEP_REPLY_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) | 556 | #define MPI_SEP_REPLY_SLOTSTATUS_IDENTIFY_REQUEST (0x00020000) |
| 357 | #define MPI_SEP_REPLY_SLOTSTATUS_REMOVE_READY (0x00040000) | 557 | #define MPI_SEP_REPLY_SLOTSTATUS_REMOVE_READY (0x00040000) |
| 358 | #define MPI_SEP_REPLY_SLOTSTATUS_INSERT_READY (0x00080000) | 558 | #define MPI_SEP_REPLY_SLOTSTATUS_INSERT_READY (0x00080000) |
| 359 | #define MPI_SEP_REPLY_SLOTSTATUS_DO_NOT_REMOVE (0x00400000) | 559 | #define MPI_SEP_REPLY_SLOTSTATUS_DO_NOT_REMOVE (0x00400000) |
| 560 | #define MPI_SEP_REPLY_SLOTSTATUS_ACTIVE (0x00800000) | ||
| 360 | #define MPI_SEP_REPLY_SLOTSTATUS_B_BYPASS_ENABLED (0x01000000) | 561 | #define MPI_SEP_REPLY_SLOTSTATUS_B_BYPASS_ENABLED (0x01000000) |
| 361 | #define MPI_SEP_REPLY_SLOTSTATUS_A_BYPASS_ENABLED (0x02000000) | 562 | #define MPI_SEP_REPLY_SLOTSTATUS_A_BYPASS_ENABLED (0x02000000) |
| 362 | #define MPI_SEP_REPLY_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) | 563 | #define MPI_SEP_REPLY_SLOTSTATUS_B_ENABLE_BYPASS (0x04000000) |
