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