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
47typedef 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
68typedef 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
97typedef 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
116typedef 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
132typedef 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
151typedef 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
185typedef 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
194typedef 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
201typedef 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
210typedef 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
218typedef 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
246typedef 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
271typedef 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
299typedef 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
321typedef 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
336typedef 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
356