diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_ioc.h')
| -rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 91 |
1 files changed, 83 insertions, 8 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h index c294128bdeb4..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.11 | 9 | * mpi2_ioc.h Version: 02.00.13 |
| 10 | * | 10 | * |
| 11 | * Version History | 11 | * Version History |
| 12 | * --------------- | 12 | * --------------- |
| @@ -84,6 +84,20 @@ | |||
| 84 | * Added two new reason codes for SAS Device Status Change | 84 | * Added two new reason codes for SAS Device Status Change |
| 85 | * Event. | 85 | * Event. |
| 86 | * Added new event: SAS PHY Counter. | 86 | * Added new event: SAS PHY Counter. |
| 87 | * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. | ||
| 88 | * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. | ||
| 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_). | ||
| 87 | * -------------------------------------------------------------------------- | 101 | * -------------------------------------------------------------------------- |
| 88 | */ | 102 | */ |
| 89 | 103 | ||
| @@ -116,8 +130,10 @@ typedef struct _MPI2_IOC_INIT_REQUEST | |||
| 116 | U16 MsgVersion; /* 0x0C */ | 130 | U16 MsgVersion; /* 0x0C */ |
| 117 | U16 HeaderVersion; /* 0x0E */ | 131 | U16 HeaderVersion; /* 0x0E */ |
| 118 | U32 Reserved5; /* 0x10 */ | 132 | U32 Reserved5; /* 0x10 */ |
| 119 | U32 Reserved6; /* 0x14 */ | 133 | U16 Reserved6; /* 0x14 */ |
| 120 | U16 Reserved7; /* 0x18 */ | 134 | U8 Reserved7; /* 0x16 */ |
| 135 | U8 HostMSIxVectors; /* 0x17 */ | ||
| 136 | U16 Reserved8; /* 0x18 */ | ||
| 121 | U16 SystemRequestFrameSize; /* 0x1A */ | 137 | U16 SystemRequestFrameSize; /* 0x1A */ |
| 122 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ | 138 | U16 ReplyDescriptorPostQueueDepth; /* 0x1C */ |
| 123 | U16 ReplyFreeQueueDepth; /* 0x1E */ | 139 | U16 ReplyFreeQueueDepth; /* 0x1E */ |
| @@ -212,7 +228,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
| 212 | U8 MaxChainDepth; /* 0x14 */ | 228 | U8 MaxChainDepth; /* 0x14 */ |
| 213 | U8 WhoInit; /* 0x15 */ | 229 | U8 WhoInit; /* 0x15 */ |
| 214 | U8 NumberOfPorts; /* 0x16 */ | 230 | U8 NumberOfPorts; /* 0x16 */ |
| 215 | U8 Reserved2; /* 0x17 */ | 231 | U8 MaxMSIxVectors; /* 0x17 */ |
| 216 | U16 RequestCredit; /* 0x18 */ | 232 | U16 RequestCredit; /* 0x18 */ |
| 217 | U16 ProductID; /* 0x1A */ | 233 | U16 ProductID; /* 0x1A */ |
| 218 | U32 IOCCapabilities; /* 0x1C */ | 234 | U32 IOCCapabilities; /* 0x1C */ |
| @@ -230,7 +246,8 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
| 230 | U8 MaxVolumes; /* 0x37 */ | 246 | U8 MaxVolumes; /* 0x37 */ |
| 231 | U16 MaxDevHandle; /* 0x38 */ | 247 | U16 MaxDevHandle; /* 0x38 */ |
| 232 | U16 MaxPersistentEntries; /* 0x3A */ | 248 | U16 MaxPersistentEntries; /* 0x3A */ |
| 233 | U32 Reserved4; /* 0x3C */ | 249 | U16 MinDevHandle; /* 0x3C */ |
| 250 | U16 Reserved4; /* 0x3E */ | ||
| 234 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, | 251 | } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY, |
| 235 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; | 252 | Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; |
| 236 | 253 | ||
| @@ -266,6 +283,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
| 266 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ | 283 | /* ProductID field uses MPI2_FW_HEADER_PID_ */ |
| 267 | 284 | ||
| 268 | /* IOCCapabilities */ | 285 | /* IOCCapabilities */ |
| 286 | #define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000) | ||
| 269 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) | 287 | #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) |
| 270 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) | 288 | #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) |
| 271 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) | 289 | #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) |
| @@ -274,6 +292,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY | |||
| 274 | #define MPI2_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) | 292 | #define MPI2_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) |
| 275 | #define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080) | 293 | #define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080) |
| 276 | #define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040) | 294 | #define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040) |
| 295 | #define MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020) | ||
| 277 | #define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) | 296 | #define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) |
| 278 | #define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) | 297 | #define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) |
| 279 | #define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004) | 298 | #define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004) |
| @@ -448,6 +467,8 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY | |||
| 448 | #define MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST (0x0020) | 467 | #define MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST (0x0020) |
| 449 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) | 468 | #define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) |
| 450 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) | 469 | #define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) |
| 470 | #define MPI2_EVENT_GPIO_INTERRUPT (0x0023) | ||
| 471 | #define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) | ||
| 451 | 472 | ||
| 452 | 473 | ||
| 453 | /* Log Entry Added Event data */ | 474 | /* Log Entry Added Event data */ |
| @@ -469,6 +490,16 @@ typedef struct _MPI2_EVENT_DATA_LOG_ENTRY_ADDED | |||
| 469 | MPI2_POINTER PTR_MPI2_EVENT_DATA_LOG_ENTRY_ADDED, | 490 | MPI2_POINTER PTR_MPI2_EVENT_DATA_LOG_ENTRY_ADDED, |
| 470 | Mpi2EventDataLogEntryAdded_t, MPI2_POINTER pMpi2EventDataLogEntryAdded_t; | 491 | Mpi2EventDataLogEntryAdded_t, MPI2_POINTER pMpi2EventDataLogEntryAdded_t; |
| 471 | 492 | ||
| 493 | /* GPIO Interrupt Event data */ | ||
| 494 | |||
| 495 | typedef struct _MPI2_EVENT_DATA_GPIO_INTERRUPT { | ||
| 496 | U8 GPIONum; /* 0x00 */ | ||
| 497 | U8 Reserved1; /* 0x01 */ | ||
| 498 | U16 Reserved2; /* 0x02 */ | ||
| 499 | } MPI2_EVENT_DATA_GPIO_INTERRUPT, | ||
| 500 | MPI2_POINTER PTR_MPI2_EVENT_DATA_GPIO_INTERRUPT, | ||
| 501 | Mpi2EventDataGpioInterrupt_t, MPI2_POINTER pMpi2EventDataGpioInterrupt_t; | ||
| 502 | |||
| 472 | /* Hard Reset Received Event data */ | 503 | /* Hard Reset Received Event data */ |
| 473 | 504 | ||
| 474 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED | 505 | typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED |
| @@ -778,6 +809,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST | |||
| 778 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; | 809 | MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t; |
| 779 | 810 | ||
| 780 | /* values for the ExpStatus field */ | 811 | /* values for the ExpStatus field */ |
| 812 | #define MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER (0x00) | ||
| 781 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) | 813 | #define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) |
| 782 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) | 814 | #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) |
| 783 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) | 815 | #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) |
| @@ -863,6 +895,44 @@ typedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER { | |||
| 863 | * */ | 895 | * */ |
| 864 | 896 | ||
| 865 | 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 | |||
| 866 | /**************************************************************************** | 936 | /**************************************************************************** |
| 867 | * EventAck message | 937 | * EventAck message |
| 868 | ****************************************************************************/ | 938 | ****************************************************************************/ |
| @@ -1111,12 +1181,17 @@ typedef struct _MPI2_FW_IMAGE_HEADER | |||
| 1111 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) | 1181 | #define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000) |
| 1112 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) | 1182 | #define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000) |
| 1113 | 1183 | ||
| 1114 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) | 1184 | #define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) |
| 1115 | #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 | |||
| 1116 | 1190 | ||
| 1117 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) | 1191 | #define MPI2_FW_HEADER_PID_FAMILY_MASK (0x00FF) |
| 1118 | /* SAS */ | 1192 | /* SAS */ |
| 1119 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0010) | 1193 | #define MPI2_FW_HEADER_PID_FAMILY_2108_SAS (0x0013) |
| 1194 | #define MPI2_FW_HEADER_PID_FAMILY_2208_SAS (0x0014) | ||
| 1120 | 1195 | ||
| 1121 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ | 1196 | /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */ |
| 1122 | 1197 | ||
