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
33
34
35
36
37
38
39
40
41
42#ifndef MPI2_TOOL_H
43#define MPI2_TOOL_H
44
45
46
47
48
49
50
51
52#define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
53#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
54#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
55#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
56#define MPI2_TOOLBOX_BEACON_TOOL (0x05)
57#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
58#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07)
59
60
61
62
63
64typedef struct _MPI2_TOOLBOX_REPLY {
65 U8 Tool;
66 U8 Reserved1;
67 U8 MsgLength;
68 U8 Function;
69 U16 Reserved2;
70 U8 Reserved3;
71 U8 MsgFlags;
72 U8 VP_ID;
73 U8 VF_ID;
74 U16 Reserved4;
75 U16 Reserved5;
76 U16 IOCStatus;
77 U32 IOCLogInfo;
78} MPI2_TOOLBOX_REPLY, *PTR_MPI2_TOOLBOX_REPLY,
79 Mpi2ToolboxReply_t, *pMpi2ToolboxReply_t;
80
81
82
83
84
85typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST {
86 U8 Tool;
87 U8 Reserved1;
88 U8 ChainOffset;
89 U8 Function;
90 U16 Reserved2;
91 U8 Reserved3;
92 U8 MsgFlags;
93 U8 VP_ID;
94 U8 VF_ID;
95 U16 Reserved4;
96 U32 Flags;
97} MPI2_TOOLBOX_CLEAN_REQUEST, *PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
98 Mpi2ToolboxCleanRequest_t, *pMpi2ToolboxCleanRequest_t;
99
100
101#define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
102#define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
103#define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
104#define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
105#define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
106#define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC (0x04000000)
107#define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000)
108#define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000)
109#define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004)
110#define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002)
111#define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001)
112
113
114
115
116
117typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST {
118 U8 Tool;
119 U8 Reserved1;
120 U8 ChainOffset;
121 U8 Function;
122 U16 Reserved2;
123 U8 Reserved3;
124 U8 MsgFlags;
125 U8 VP_ID;
126 U8 VF_ID;
127 U16 Reserved4;
128 MPI2_SGE_SIMPLE_UNION SGL;
129} MPI2_TOOLBOX_MEM_MOVE_REQUEST, *PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
130 Mpi2ToolboxMemMoveRequest_t, *pMpi2ToolboxMemMoveRequest_t;
131
132
133
134
135
136typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST {
137 U8 Tool;
138 U8 Reserved1;
139 U8 ChainOffset;
140 U8 Function;
141 U16 Reserved2;
142 U8 Reserved3;
143 U8 MsgFlags;
144 U8 VP_ID;
145 U8 VF_ID;
146 U16 Reserved4;
147 U8 SGLFlags;
148 U8 Reserved5;
149 U16 Reserved6;
150 U32 Flags;
151 U32 DataLength;
152 MPI2_SGE_SIMPLE_UNION SGL;
153} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
154 *PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
155 Mpi2ToolboxDiagDataUploadRequest_t,
156 *pMpi2ToolboxDiagDataUploadRequest_t;
157
158
159
160typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER {
161 U32 DiagDataLength;
162 U8 FormatCode;
163 U8 Reserved1;
164 U16 Reserved2;
165} MPI2_DIAG_DATA_UPLOAD_HEADER, *PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
166 Mpi2DiagDataUploadHeader_t, *pMpi2DiagDataUploadHeader_t;
167
168
169
170
171
172
173typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST {
174 U8 Tool;
175 U8 Reserved1;
176 U8 ChainOffset;
177 U8 Function;
178 U16 Reserved2;
179 U8 Reserved3;
180 U8 MsgFlags;
181 U8 VP_ID;
182 U8 VF_ID;
183 U16 Reserved4;
184 U32 Reserved5;
185 U32 Reserved6;
186 U8 DevIndex;
187 U8 Action;
188 U8 SGLFlags;
189 U8 Flags;
190 U16 TxDataLength;
191 U16 RxDataLength;
192 U32 Reserved8;
193 U32 Reserved9;
194 U32 Reserved10;
195 U32 Reserved11;
196 U32 Reserved12;
197 MPI2_SGE_SIMPLE_UNION SGL;
198} MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
199 *PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
200 Mpi2ToolboxIstwiReadWriteRequest_t,
201 *pMpi2ToolboxIstwiReadWriteRequest_t;
202
203
204#define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01)
205#define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02)
206#define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03)
207#define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10)
208#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11)
209#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12)
210
211
212
213
214#define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80)
215#define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07)
216
217
218typedef struct _MPI2_TOOLBOX_ISTWI_REPLY {
219 U8 Tool;
220 U8 Reserved1;
221 U8 MsgLength;
222 U8 Function;
223 U16 Reserved2;
224 U8 Reserved3;
225 U8 MsgFlags;
226 U8 VP_ID;
227 U8 VF_ID;
228 U16 Reserved4;
229 U16 Reserved5;
230 U16 IOCStatus;
231 U32 IOCLogInfo;
232 U8 DevIndex;
233 U8 Action;
234 U8 IstwiStatus;
235 U8 Reserved6;
236 U16 TxDataCount;
237 U16 RxDataCount;
238} MPI2_TOOLBOX_ISTWI_REPLY, *PTR_MPI2_TOOLBOX_ISTWI_REPLY,
239 Mpi2ToolboxIstwiReply_t, *pMpi2ToolboxIstwiReply_t;
240
241
242
243
244
245typedef struct _MPI2_TOOLBOX_BEACON_REQUEST {
246 U8 Tool;
247 U8 Reserved1;
248 U8 ChainOffset;
249 U8 Function;
250 U16 Reserved2;
251 U8 Reserved3;
252 U8 MsgFlags;
253 U8 VP_ID;
254 U8 VF_ID;
255 U16 Reserved4;
256 U8 Reserved5;
257 U8 PhysicalPort;
258 U8 Reserved6;
259 U8 Flags;
260} MPI2_TOOLBOX_BEACON_REQUEST, *PTR_MPI2_TOOLBOX_BEACON_REQUEST,
261 Mpi2ToolboxBeaconRequest_t, *pMpi2ToolboxBeaconRequest_t;
262
263
264#define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00)
265#define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01)
266
267
268
269
270
271#define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C)
272
273
274typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST {
275 U8 Tool;
276 U8 Reserved1;
277 U8 ChainOffset;
278 U8 Function;
279 U16 Reserved2;
280 U8 Reserved3;
281 U8 MsgFlags;
282 U8 VP_ID;
283 U8 VF_ID;
284 U16 Reserved4;
285 U8 SGLFlags;
286 U8 Reserved5;
287 U16 Reserved6;
288 U32 DataLength;
289 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];
290 MPI2_MPI_SGE_IO_UNION SGL;
291} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
292 *PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
293 Mpi2ToolboxDiagnosticCliRequest_t,
294 *pMpi2ToolboxDiagnosticCliRequest_t;
295
296
297
298
299typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST {
300 U8 Tool;
301 U8 Reserved1;
302 U8 ChainOffset;
303 U8 Function;
304 U16 Reserved2;
305 U8 Reserved3;
306 U8 MsgFlags;
307 U8 VP_ID;
308 U8 VF_ID;
309 U16 Reserved4;
310 U32 Reserved5;
311 U32 DataLength;
312 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];
313 MPI25_SGE_IO_UNION SGL;
314} MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
315 *PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
316 Mpi25ToolboxDiagnosticCliRequest_t,
317 *pMpi25ToolboxDiagnosticCliRequest_t;
318
319
320typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY {
321 U8 Tool;
322 U8 Reserved1;
323 U8 MsgLength;
324 U8 Function;
325 U16 Reserved2;
326 U8 Reserved3;
327 U8 MsgFlags;
328 U8 VP_ID;
329 U8 VF_ID;
330 U16 Reserved4;
331 U16 Reserved5;
332 U16 IOCStatus;
333 U32 IOCLogInfo;
334 U32 ReturnedDataLength;
335} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
336 *PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
337 Mpi2ToolboxDiagnosticCliReply_t,
338 *pMpi2ToolboxDiagnosticCliReply_t;
339
340
341
342
343
344
345
346typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST {
347 U8 Tool;
348 U8 Reserved1;
349 U8 ChainOffset;
350 U8 Function;
351 U16 Reserved2;
352 U8 Reserved3;
353 U8 MsgFlags;
354 U8 VP_ID;
355 U8 VF_ID;
356 U16 Reserved4;
357 U8 Console;
358 U8 Flags;
359 U16 Reserved6;
360 U8 TextToDisplay[4];
361} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
362*PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
363Mpi2ToolboxTextDisplayRequest_t,
364*pMpi2ToolboxTextDisplayRequest_t;
365
366
367#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0)
368#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00)
369#define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10)
370#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20)
371
372#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F)
373
374
375#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01)
376
377
378
379
380
381
382
383
384
385
386
387
388
389typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST {
390 U8 ExtendedType;
391 U8 BufferType;
392 U8 ChainOffset;
393 U8 Function;
394 U16 Reserved2;
395 U8 Reserved3;
396 U8 MsgFlags;
397 U8 VP_ID;
398 U8 VF_ID;
399 U16 Reserved4;
400 U64 BufferAddress;
401 U32 BufferLength;
402 U32 Reserved5;
403 U32 Reserved6;
404 U32 Flags;
405 U32 ProductSpecific[23];
406} MPI2_DIAG_BUFFER_POST_REQUEST, *PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
407 Mpi2DiagBufferPostRequest_t, *pMpi2DiagBufferPostRequest_t;
408
409
410#define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02)
411
412
413#define MPI2_DIAG_BUF_TYPE_TRACE (0x00)
414#define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01)
415#define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02)
416
417#define MPI2_DIAG_BUF_TYPE_COUNT (0x03)
418
419
420#define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002)
421#define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001)
422
423
424
425
426
427typedef struct _MPI2_DIAG_BUFFER_POST_REPLY {
428 U8 ExtendedType;
429 U8 BufferType;
430 U8 MsgLength;
431 U8 Function;
432 U16 Reserved2;
433 U8 Reserved3;
434 U8 MsgFlags;
435 U8 VP_ID;
436 U8 VF_ID;
437 U16 Reserved4;
438 U16 Reserved5;
439 U16 IOCStatus;
440 U32 IOCLogInfo;
441 U32 TransferLength;
442} MPI2_DIAG_BUFFER_POST_REPLY, *PTR_MPI2_DIAG_BUFFER_POST_REPLY,
443 Mpi2DiagBufferPostReply_t, *pMpi2DiagBufferPostReply_t;
444
445
446
447
448
449typedef struct _MPI2_DIAG_RELEASE_REQUEST {
450 U8 Reserved1;
451 U8 BufferType;
452 U8 ChainOffset;
453 U8 Function;
454 U16 Reserved2;
455 U8 Reserved3;
456 U8 MsgFlags;
457 U8 VP_ID;
458 U8 VF_ID;
459 U16 Reserved4;
460} MPI2_DIAG_RELEASE_REQUEST, *PTR_MPI2_DIAG_RELEASE_REQUEST,
461 Mpi2DiagReleaseRequest_t, *pMpi2DiagReleaseRequest_t;
462
463
464
465
466
467typedef struct _MPI2_DIAG_RELEASE_REPLY {
468 U8 Reserved1;
469 U8 BufferType;
470 U8 MsgLength;
471 U8 Function;
472 U16 Reserved2;
473 U8 Reserved3;
474 U8 MsgFlags;
475 U8 VP_ID;
476 U8 VF_ID;
477 U16 Reserved4;
478 U16 Reserved5;
479 U16 IOCStatus;
480 U32 IOCLogInfo;
481} MPI2_DIAG_RELEASE_REPLY, *PTR_MPI2_DIAG_RELEASE_REPLY,
482 Mpi2DiagReleaseReply_t, *pMpi2DiagReleaseReply_t;
483
484#endif
485