1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #ifndef MPI_TOOL_H
33 #define MPI_TOOL_H
34
35 #define MPI_TOOLBOX_CLEAN_TOOL (0x00)
36 #define MPI_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
37 #define MPI_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
38 #define MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
39 #define MPI_TOOLBOX_FC_MANAGEMENT_TOOL (0x04)
40 #define MPI_TOOLBOX_BEACON_TOOL (0x05)
41
42
43
44
45
46
47 typedef struct _MSG_TOOLBOX_REPLY
48 {
49 U8 Tool;
50 U8 Reserved;
51 U8 MsgLength;
52 U8 Function;
53 U16 Reserved1;
54 U8 Reserved2;
55 U8 MsgFlags;
56 U32 MsgContext;
57 U16 Reserved3;
58 U16 IOCStatus;
59 U32 IOCLogInfo;
60 } MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY,
61 ToolboxReply_t, MPI_POINTER pToolboxReply_t;
62
63
64
65
66
67
68 typedef struct _MSG_TOOLBOX_CLEAN_REQUEST
69 {
70 U8 Tool;
71 U8 Reserved;
72 U8 ChainOffset;
73 U8 Function;
74 U16 Reserved1;
75 U8 Reserved2;
76 U8 MsgFlags;
77 U32 MsgContext;
78 U32 Flags;
79 } MSG_TOOLBOX_CLEAN_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_CLEAN_REQUEST,
80 ToolboxCleanRequest_t, MPI_POINTER pToolboxCleanRequest_t;
81
82 #define MPI_TOOLBOX_CLEAN_NVSRAM (0x00000001)
83 #define MPI_TOOLBOX_CLEAN_SEEPROM (0x00000002)
84 #define MPI_TOOLBOX_CLEAN_FLASH (0x00000004)
85 #define MPI_TOOLBOX_CLEAN_BOOTLOADER (0x04000000)
86 #define MPI_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
87 #define MPI_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
88 #define MPI_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
89 #define MPI_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
90 #define MPI_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
91
92
93
94
95
96
97 typedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST
98 {
99 U8 Tool;
100 U8 Reserved;
101 U8 ChainOffset;
102 U8 Function;
103 U16 Reserved1;
104 U8 Reserved2;
105 U8 MsgFlags;
106 U32 MsgContext;
107 SGE_SIMPLE_UNION SGL;
108 } MSG_TOOLBOX_MEM_MOVE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_MEM_MOVE_REQUEST,
109 ToolboxMemMoveRequest_t, MPI_POINTER pToolboxMemMoveRequest_t;
110
111
112
113
114
115
116 typedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
117 {
118 U8 Tool;
119 U8 Reserved;
120 U8 ChainOffset;
121 U8 Function;
122 U16 Reserved1;
123 U8 Reserved2;
124 U8 MsgFlags;
125 U32 MsgContext;
126 U32 Flags;
127 U32 Reserved3;
128 SGE_SIMPLE_UNION SGL;
129 } MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
130 ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t;
131
132 typedef struct _DIAG_DATA_UPLOAD_HEADER
133 {
134 U32 DiagDataLength;
135 U8 FormatCode;
136 U8 Reserved;
137 U16 Reserved1;
138 } DIAG_DATA_UPLOAD_HEADER, MPI_POINTER PTR_DIAG_DATA_UPLOAD_HEADER,
139 DiagDataUploadHeader_t, MPI_POINTER pDiagDataUploadHeader_t;
140
141 #define MPI_TB_DIAG_FORMAT_SCSI_PRINTF_1 (0x01)
142 #define MPI_TB_DIAG_FORMAT_SCSI_2 (0x02)
143 #define MPI_TB_DIAG_FORMAT_SCSI_3 (0x03)
144 #define MPI_TB_DIAG_FORMAT_FC_TRACE_1 (0x04)
145
146
147
148
149
150
151 typedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST
152 {
153 U8 Tool;
154 U8 Reserved;
155 U8 ChainOffset;
156 U8 Function;
157 U16 Reserved1;
158 U8 Reserved2;
159 U8 MsgFlags;
160 U32 MsgContext;
161 U8 Flags;
162 U8 BusNum;
163 U16 Reserved3;
164 U8 NumAddressBytes;
165 U8 Reserved4;
166 U16 DataLength;
167 U8 DeviceAddr;
168 U8 Addr1;
169 U8 Addr2;
170 U8 Addr3;
171 U32 Reserved5;
172 SGE_SIMPLE_UNION SGL;
173 } MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
174 ToolboxIstwiReadWriteRequest_t, MPI_POINTER pToolboxIstwiReadWriteRequest_t;
175
176 #define MPI_TB_ISTWI_FLAGS_WRITE (0x00)
177 #define MPI_TB_ISTWI_FLAGS_READ (0x01)
178
179
180
181
182
183
184
185 typedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI
186 {
187 U16 Reserved;
188 U8 Bus;
189 U8 TargetId;
190 } MPI_TB_FC_MANAGE_BUS_TID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_BUS_TID_AI,
191 MpiTbFcManageBusTidAi_t, MPI_POINTER pMpiTbFcManageBusTidAi_t;
192
193
194 typedef struct _MPI_TB_FC_MANAGE_PID_AI
195 {
196 U32 PortIdentifier;
197 } MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI,
198 MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t;
199
200
201 typedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI
202 {
203 U16 FrameSize;
204 U8 PortNum;
205 U8 Reserved1;
206 } MPI_TB_FC_MANAGE_FRAME_SIZE_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_FRAME_SIZE_AI,
207 MpiTbFcManageFrameSizeAi_t, MPI_POINTER pMpiTbFcManageFrameSizeAi_t;
208
209
210 typedef union _MPI_TB_FC_MANAGE_AI_UNION
211 {
212 MPI_TB_FC_MANAGE_BUS_TID_AI BusTid;
213 MPI_TB_FC_MANAGE_PID_AI Port;
214 MPI_TB_FC_MANAGE_FRAME_SIZE_AI FrameSize;
215 } MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION,
216 MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t;
217
218 typedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST
219 {
220 U8 Tool;
221 U8 Reserved;
222 U8 ChainOffset;
223 U8 Function;
224 U16 Reserved1;
225 U8 Reserved2;
226 U8 MsgFlags;
227 U32 MsgContext;
228 U8 Action;
229 U8 Reserved3;
230 U16 Reserved4;
231 MPI_TB_FC_MANAGE_AI_UNION ActionInfo;
232 } MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST,
233 ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t;
234
235
236 #define MPI_TB_FC_MANAGE_ACTION_DISC_ALL (0x00)
237 #define MPI_TB_FC_MANAGE_ACTION_DISC_PID (0x01)
238 #define MPI_TB_FC_MANAGE_ACTION_DISC_BUS_TID (0x02)
239 #define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE (0x03)
240
241
242
243
244
245
246 typedef struct _MSG_TOOLBOX_BEACON_REQUEST
247 {
248 U8 Tool;
249 U8 Reserved;
250 U8 ChainOffset;
251 U8 Function;
252 U16 Reserved1;
253 U8 Reserved2;
254 U8 MsgFlags;
255 U32 MsgContext;
256 U8 ConnectNum;
257 U8 PortNum;
258 U8 Reserved3;
259 U8 Flags;
260 } MSG_TOOLBOX_BEACON_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_BEACON_REQUEST,
261 ToolboxBeaconRequest_t, MPI_POINTER pToolboxBeaconRequest_t;
262
263 #define MPI_TOOLBOX_FLAGS_BEACON_MODE_OFF (0x00)
264 #define MPI_TOOLBOX_FLAGS_BEACON_MODE_ON (0x01)
265
266
267
268
269
270
271 typedef struct _MSG_DIAG_BUFFER_POST_REQUEST
272 {
273 U8 TraceLevel;
274 U8 BufferType;
275 U8 ChainOffset;
276 U8 Function;
277 U16 Reserved1;
278 U8 Reserved2;
279 U8 MsgFlags;
280 U32 MsgContext;
281 U32 ExtendedType;
282 U32 BufferLength;
283 U32 ProductSpecific[4];
284 U32 Reserved3;
285 U64 BufferAddress;
286 } MSG_DIAG_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REQUEST,
287 DiagBufferPostRequest_t, MPI_POINTER pDiagBufferPostRequest_t;
288
289 #define MPI_DIAG_BUF_TYPE_TRACE (0x00)
290 #define MPI_DIAG_BUF_TYPE_SNAPSHOT (0x01)
291 #define MPI_DIAG_BUF_TYPE_EXTENDED (0x02)
292
293 #define MPI_DIAG_BUF_TYPE_COUNT (0x03)
294
295 #define MPI_DIAG_EXTENDED_QTAG (0x00000001)
296
297
298
299 typedef struct _MSG_DIAG_BUFFER_POST_REPLY
300 {
301 U8 Reserved1;
302 U8 BufferType;
303 U8 MsgLength;
304 U8 Function;
305 U16 Reserved2;
306 U8 Reserved3;
307 U8 MsgFlags;
308 U32 MsgContext;
309 U16 Reserved4;
310 U16 IOCStatus;
311 U32 IOCLogInfo;
312 U32 TransferLength;
313 } MSG_DIAG_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REPLY,
314 DiagBufferPostReply_t, MPI_POINTER pDiagBufferPostReply_t;
315
316
317
318
319
320
321 typedef struct _MSG_DIAG_RELEASE_REQUEST
322 {
323 U8 Reserved1;
324 U8 BufferType;
325 U8 ChainOffset;
326 U8 Function;
327 U16 Reserved2;
328 U8 Reserved3;
329 U8 MsgFlags;
330 U32 MsgContext;
331 } MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST,
332 DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t;
333
334
335
336 typedef struct _MSG_DIAG_RELEASE_REPLY
337 {
338 U8 Reserved1;
339 U8 BufferType;
340 U8 MsgLength;
341 U8 Function;
342 U16 Reserved2;
343 U8 Reserved3;
344 U8 MsgFlags;
345 U32 MsgContext;
346 U16 Reserved4;
347 U16 IOCStatus;
348 U32 IOCLogInfo;
349 } MSG_DIAG_RELEASE_REPLY, MPI_POINTER PTR_MSG_DIAG_RELEASE_REPLY,
350 DiagReleaseReply_t, MPI_POINTER pDiagReleaseReply_t;
351
352
353 #endif
354
355