0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #ifndef MPI_TOOL_H
0033 #define MPI_TOOL_H
0034
0035 #define MPI_TOOLBOX_CLEAN_TOOL (0x00)
0036 #define MPI_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
0037 #define MPI_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
0038 #define MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
0039 #define MPI_TOOLBOX_FC_MANAGEMENT_TOOL (0x04)
0040 #define MPI_TOOLBOX_BEACON_TOOL (0x05)
0041
0042
0043
0044
0045
0046
0047 typedef struct _MSG_TOOLBOX_REPLY
0048 {
0049 U8 Tool;
0050 U8 Reserved;
0051 U8 MsgLength;
0052 U8 Function;
0053 U16 Reserved1;
0054 U8 Reserved2;
0055 U8 MsgFlags;
0056 U32 MsgContext;
0057 U16 Reserved3;
0058 U16 IOCStatus;
0059 U32 IOCLogInfo;
0060 } MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY,
0061 ToolboxReply_t, MPI_POINTER pToolboxReply_t;
0062
0063
0064
0065
0066
0067
0068 typedef struct _MSG_TOOLBOX_CLEAN_REQUEST
0069 {
0070 U8 Tool;
0071 U8 Reserved;
0072 U8 ChainOffset;
0073 U8 Function;
0074 U16 Reserved1;
0075 U8 Reserved2;
0076 U8 MsgFlags;
0077 U32 MsgContext;
0078 U32 Flags;
0079 } MSG_TOOLBOX_CLEAN_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_CLEAN_REQUEST,
0080 ToolboxCleanRequest_t, MPI_POINTER pToolboxCleanRequest_t;
0081
0082 #define MPI_TOOLBOX_CLEAN_NVSRAM (0x00000001)
0083 #define MPI_TOOLBOX_CLEAN_SEEPROM (0x00000002)
0084 #define MPI_TOOLBOX_CLEAN_FLASH (0x00000004)
0085 #define MPI_TOOLBOX_CLEAN_BOOTLOADER (0x04000000)
0086 #define MPI_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
0087 #define MPI_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
0088 #define MPI_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
0089 #define MPI_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
0090 #define MPI_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
0091
0092
0093
0094
0095
0096
0097 typedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST
0098 {
0099 U8 Tool;
0100 U8 Reserved;
0101 U8 ChainOffset;
0102 U8 Function;
0103 U16 Reserved1;
0104 U8 Reserved2;
0105 U8 MsgFlags;
0106 U32 MsgContext;
0107 SGE_SIMPLE_UNION SGL;
0108 } MSG_TOOLBOX_MEM_MOVE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_MEM_MOVE_REQUEST,
0109 ToolboxMemMoveRequest_t, MPI_POINTER pToolboxMemMoveRequest_t;
0110
0111
0112
0113
0114
0115
0116 typedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
0117 {
0118 U8 Tool;
0119 U8 Reserved;
0120 U8 ChainOffset;
0121 U8 Function;
0122 U16 Reserved1;
0123 U8 Reserved2;
0124 U8 MsgFlags;
0125 U32 MsgContext;
0126 U32 Flags;
0127 U32 Reserved3;
0128 SGE_SIMPLE_UNION SGL;
0129 } MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
0130 ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t;
0131
0132 typedef struct _DIAG_DATA_UPLOAD_HEADER
0133 {
0134 U32 DiagDataLength;
0135 U8 FormatCode;
0136 U8 Reserved;
0137 U16 Reserved1;
0138 } DIAG_DATA_UPLOAD_HEADER, MPI_POINTER PTR_DIAG_DATA_UPLOAD_HEADER,
0139 DiagDataUploadHeader_t, MPI_POINTER pDiagDataUploadHeader_t;
0140
0141 #define MPI_TB_DIAG_FORMAT_SCSI_PRINTF_1 (0x01)
0142 #define MPI_TB_DIAG_FORMAT_SCSI_2 (0x02)
0143 #define MPI_TB_DIAG_FORMAT_SCSI_3 (0x03)
0144 #define MPI_TB_DIAG_FORMAT_FC_TRACE_1 (0x04)
0145
0146
0147
0148
0149
0150
0151 typedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST
0152 {
0153 U8 Tool;
0154 U8 Reserved;
0155 U8 ChainOffset;
0156 U8 Function;
0157 U16 Reserved1;
0158 U8 Reserved2;
0159 U8 MsgFlags;
0160 U32 MsgContext;
0161 U8 Flags;
0162 U8 BusNum;
0163 U16 Reserved3;
0164 U8 NumAddressBytes;
0165 U8 Reserved4;
0166 U16 DataLength;
0167 U8 DeviceAddr;
0168 U8 Addr1;
0169 U8 Addr2;
0170 U8 Addr3;
0171 U32 Reserved5;
0172 SGE_SIMPLE_UNION SGL;
0173 } MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
0174 ToolboxIstwiReadWriteRequest_t, MPI_POINTER pToolboxIstwiReadWriteRequest_t;
0175
0176 #define MPI_TB_ISTWI_FLAGS_WRITE (0x00)
0177 #define MPI_TB_ISTWI_FLAGS_READ (0x01)
0178
0179
0180
0181
0182
0183
0184
0185 typedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI
0186 {
0187 U16 Reserved;
0188 U8 Bus;
0189 U8 TargetId;
0190 } MPI_TB_FC_MANAGE_BUS_TID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_BUS_TID_AI,
0191 MpiTbFcManageBusTidAi_t, MPI_POINTER pMpiTbFcManageBusTidAi_t;
0192
0193
0194 typedef struct _MPI_TB_FC_MANAGE_PID_AI
0195 {
0196 U32 PortIdentifier;
0197 } MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI,
0198 MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t;
0199
0200
0201 typedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI
0202 {
0203 U16 FrameSize;
0204 U8 PortNum;
0205 U8 Reserved1;
0206 } MPI_TB_FC_MANAGE_FRAME_SIZE_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_FRAME_SIZE_AI,
0207 MpiTbFcManageFrameSizeAi_t, MPI_POINTER pMpiTbFcManageFrameSizeAi_t;
0208
0209
0210 typedef union _MPI_TB_FC_MANAGE_AI_UNION
0211 {
0212 MPI_TB_FC_MANAGE_BUS_TID_AI BusTid;
0213 MPI_TB_FC_MANAGE_PID_AI Port;
0214 MPI_TB_FC_MANAGE_FRAME_SIZE_AI FrameSize;
0215 } MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION,
0216 MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t;
0217
0218 typedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST
0219 {
0220 U8 Tool;
0221 U8 Reserved;
0222 U8 ChainOffset;
0223 U8 Function;
0224 U16 Reserved1;
0225 U8 Reserved2;
0226 U8 MsgFlags;
0227 U32 MsgContext;
0228 U8 Action;
0229 U8 Reserved3;
0230 U16 Reserved4;
0231 MPI_TB_FC_MANAGE_AI_UNION ActionInfo;
0232 } MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST,
0233 ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t;
0234
0235
0236 #define MPI_TB_FC_MANAGE_ACTION_DISC_ALL (0x00)
0237 #define MPI_TB_FC_MANAGE_ACTION_DISC_PID (0x01)
0238 #define MPI_TB_FC_MANAGE_ACTION_DISC_BUS_TID (0x02)
0239 #define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE (0x03)
0240
0241
0242
0243
0244
0245
0246 typedef struct _MSG_TOOLBOX_BEACON_REQUEST
0247 {
0248 U8 Tool;
0249 U8 Reserved;
0250 U8 ChainOffset;
0251 U8 Function;
0252 U16 Reserved1;
0253 U8 Reserved2;
0254 U8 MsgFlags;
0255 U32 MsgContext;
0256 U8 ConnectNum;
0257 U8 PortNum;
0258 U8 Reserved3;
0259 U8 Flags;
0260 } MSG_TOOLBOX_BEACON_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_BEACON_REQUEST,
0261 ToolboxBeaconRequest_t, MPI_POINTER pToolboxBeaconRequest_t;
0262
0263 #define MPI_TOOLBOX_FLAGS_BEACON_MODE_OFF (0x00)
0264 #define MPI_TOOLBOX_FLAGS_BEACON_MODE_ON (0x01)
0265
0266
0267
0268
0269
0270
0271 typedef struct _MSG_DIAG_BUFFER_POST_REQUEST
0272 {
0273 U8 TraceLevel;
0274 U8 BufferType;
0275 U8 ChainOffset;
0276 U8 Function;
0277 U16 Reserved1;
0278 U8 Reserved2;
0279 U8 MsgFlags;
0280 U32 MsgContext;
0281 U32 ExtendedType;
0282 U32 BufferLength;
0283 U32 ProductSpecific[4];
0284 U32 Reserved3;
0285 U64 BufferAddress;
0286 } MSG_DIAG_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REQUEST,
0287 DiagBufferPostRequest_t, MPI_POINTER pDiagBufferPostRequest_t;
0288
0289 #define MPI_DIAG_BUF_TYPE_TRACE (0x00)
0290 #define MPI_DIAG_BUF_TYPE_SNAPSHOT (0x01)
0291 #define MPI_DIAG_BUF_TYPE_EXTENDED (0x02)
0292
0293 #define MPI_DIAG_BUF_TYPE_COUNT (0x03)
0294
0295 #define MPI_DIAG_EXTENDED_QTAG (0x00000001)
0296
0297
0298
0299 typedef struct _MSG_DIAG_BUFFER_POST_REPLY
0300 {
0301 U8 Reserved1;
0302 U8 BufferType;
0303 U8 MsgLength;
0304 U8 Function;
0305 U16 Reserved2;
0306 U8 Reserved3;
0307 U8 MsgFlags;
0308 U32 MsgContext;
0309 U16 Reserved4;
0310 U16 IOCStatus;
0311 U32 IOCLogInfo;
0312 U32 TransferLength;
0313 } MSG_DIAG_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REPLY,
0314 DiagBufferPostReply_t, MPI_POINTER pDiagBufferPostReply_t;
0315
0316
0317
0318
0319
0320
0321 typedef struct _MSG_DIAG_RELEASE_REQUEST
0322 {
0323 U8 Reserved1;
0324 U8 BufferType;
0325 U8 ChainOffset;
0326 U8 Function;
0327 U16 Reserved2;
0328 U8 Reserved3;
0329 U8 MsgFlags;
0330 U32 MsgContext;
0331 } MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST,
0332 DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t;
0333
0334
0335
0336 typedef struct _MSG_DIAG_RELEASE_REPLY
0337 {
0338 U8 Reserved1;
0339 U8 BufferType;
0340 U8 MsgLength;
0341 U8 Function;
0342 U16 Reserved2;
0343 U8 Reserved3;
0344 U8 MsgFlags;
0345 U32 MsgContext;
0346 U16 Reserved4;
0347 U16 IOCStatus;
0348 U32 IOCLogInfo;
0349 } MSG_DIAG_RELEASE_REPLY, MPI_POINTER PTR_MSG_DIAG_RELEASE_REPLY,
0350 DiagReleaseReply_t, MPI_POINTER pDiagReleaseReply_t;
0351
0352
0353 #endif
0354
0355