Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
fd7a2533 | 2 | * Copyright (c) 2001-2008 LSI Corporation. |
1da177e4 LT |
3 | * |
4 | * | |
5 | * Name: mpi_tool.h | |
6 | * Title: MPI Toolbox structures and definitions | |
7 | * Creation Date: July 30, 2001 | |
8 | * | |
c1a71d1c | 9 | * mpi_tool.h Version: 01.05.03 |
1da177e4 LT |
10 | * |
11 | * Version History | |
12 | * --------------- | |
13 | * | |
14 | * Date Version Description | |
15 | * -------- -------- ------------------------------------------------------ | |
16 | * 08-08-01 01.02.01 Original release. | |
17 | * 08-29-01 01.02.02 Added DIAG_DATA_UPLOAD_HEADER and related defines. | |
c1a71d1c MED |
18 | * 01-16-04 01.02.03 Added defines and structures for new tools |
19 | *. MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and | |
20 | * MPI_TOOLBOX_FC_MANAGEMENT_TOOL. | |
21 | * 04-29-04 01.02.04 Added message structures for Diagnostic Buffer Post and | |
22 | * Diagnostic Release requests and replies. | |
23 | * 05-11-04 01.03.01 Original release for MPI v1.3. | |
24 | * 08-19-04 01.05.01 Original release for MPI v1.5. | |
25 | * 10-06-04 01.05.02 Added define for MPI_DIAG_BUF_TYPE_COUNT. | |
26 | * 02-09-05 01.05.03 Added frame size option to FC management tool. | |
27 | * Added Beacon tool to the Toolbox. | |
1da177e4 LT |
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) | |
c1a71d1c | 39 | #define MPI_TOOLBOX_BEACON_TOOL (0x05) |
1da177e4 LT |
40 | |
41 | ||
42 | /****************************************************************************/ | |
43 | /* Toolbox reply */ | |
44 | /****************************************************************************/ | |
45 | ||
46 | typedef struct _MSG_TOOLBOX_REPLY | |
47 | { | |
48 | U8 Tool; /* 00h */ | |
49 | U8 Reserved; /* 01h */ | |
50 | U8 MsgLength; /* 02h */ | |
51 | U8 Function; /* 03h */ | |
52 | U16 Reserved1; /* 04h */ | |
53 | U8 Reserved2; /* 06h */ | |
54 | U8 MsgFlags; /* 07h */ | |
55 | U32 MsgContext; /* 08h */ | |
56 | U16 Reserved3; /* 0Ch */ | |
57 | U16 IOCStatus; /* 0Eh */ | |
58 | U32 IOCLogInfo; /* 10h */ | |
59 | } MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY, | |
60 | ToolboxReply_t, MPI_POINTER pToolboxReply_t; | |
61 | ||
62 | ||
63 | /****************************************************************************/ | |
64 | /* Toolbox Clean Tool request */ | |
65 | /****************************************************************************/ | |
66 | ||
67 | typedef struct _MSG_TOOLBOX_CLEAN_REQUEST | |
68 | { | |
69 | U8 Tool; /* 00h */ | |
70 | U8 Reserved; /* 01h */ | |
71 | U8 ChainOffset; /* 02h */ | |
72 | U8 Function; /* 03h */ | |
73 | U16 Reserved1; /* 04h */ | |
74 | U8 Reserved2; /* 06h */ | |
75 | U8 MsgFlags; /* 07h */ | |
76 | U32 MsgContext; /* 08h */ | |
77 | U32 Flags; /* 0Ch */ | |
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 | /* Toolbox Memory Move request */ | |
94 | /****************************************************************************/ | |
95 | ||
96 | typedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST | |
97 | { | |
98 | U8 Tool; /* 00h */ | |
99 | U8 Reserved; /* 01h */ | |
100 | U8 ChainOffset; /* 02h */ | |
101 | U8 Function; /* 03h */ | |
102 | U16 Reserved1; /* 04h */ | |
103 | U8 Reserved2; /* 06h */ | |
104 | U8 MsgFlags; /* 07h */ | |
105 | U32 MsgContext; /* 08h */ | |
106 | SGE_SIMPLE_UNION SGL; /* 0Ch */ | |
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 | /* Toolbox Diagnostic Data Upload request */ | |
113 | /****************************************************************************/ | |
114 | ||
115 | typedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST | |
116 | { | |
117 | U8 Tool; /* 00h */ | |
118 | U8 Reserved; /* 01h */ | |
119 | U8 ChainOffset; /* 02h */ | |
120 | U8 Function; /* 03h */ | |
121 | U16 Reserved1; /* 04h */ | |
122 | U8 Reserved2; /* 06h */ | |
123 | U8 MsgFlags; /* 07h */ | |
124 | U32 MsgContext; /* 08h */ | |
125 | U32 Flags; /* 0Ch */ | |
126 | U32 Reserved3; /* 10h */ | |
127 | SGE_SIMPLE_UNION SGL; /* 14h */ | |
128 | } MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, | |
129 | ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t; | |
130 | ||
131 | typedef struct _DIAG_DATA_UPLOAD_HEADER | |
132 | { | |
133 | U32 DiagDataLength; /* 00h */ | |
134 | U8 FormatCode; /* 04h */ | |
135 | U8 Reserved; /* 05h */ | |
136 | U16 Reserved1; /* 06h */ | |
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 | /* Toolbox ISTWI Read Write request */ | |
148 | /****************************************************************************/ | |
149 | ||
150 | typedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST | |
151 | { | |
152 | U8 Tool; /* 00h */ | |
153 | U8 Reserved; /* 01h */ | |
154 | U8 ChainOffset; /* 02h */ | |
155 | U8 Function; /* 03h */ | |
156 | U16 Reserved1; /* 04h */ | |
157 | U8 Reserved2; /* 06h */ | |
158 | U8 MsgFlags; /* 07h */ | |
159 | U32 MsgContext; /* 08h */ | |
160 | U8 Flags; /* 0Ch */ | |
161 | U8 BusNum; /* 0Dh */ | |
162 | U16 Reserved3; /* 0Eh */ | |
163 | U8 NumAddressBytes; /* 10h */ | |
164 | U8 Reserved4; /* 11h */ | |
165 | U16 DataLength; /* 12h */ | |
166 | U8 DeviceAddr; /* 14h */ | |
167 | U8 Addr1; /* 15h */ | |
168 | U8 Addr2; /* 16h */ | |
169 | U8 Addr3; /* 17h */ | |
170 | U32 Reserved5; /* 18h */ | |
171 | SGE_SIMPLE_UNION SGL; /* 1Ch */ | |
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 | /* Toolbox FC Management request */ | |
181 | /****************************************************************************/ | |
182 | ||
183 | /* ActionInfo for Bus and TargetId */ | |
184 | typedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI | |
185 | { | |
186 | U16 Reserved; /* 00h */ | |
187 | U8 Bus; /* 02h */ | |
188 | U8 TargetId; /* 03h */ | |
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 | /* ActionInfo for port identifier */ | |
193 | typedef struct _MPI_TB_FC_MANAGE_PID_AI | |
194 | { | |
195 | U32 PortIdentifier; /* 00h */ | |
196 | } MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI, | |
197 | MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t; | |
198 | ||
c1a71d1c MED |
199 | /* ActionInfo for set max frame size */ |
200 | typedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI | |
201 | { | |
202 | U16 FrameSize; /* 00h */ | |
203 | U8 PortNum; /* 02h */ | |
204 | U8 Reserved1; /* 03h */ | |
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 | ||
1da177e4 LT |
208 | /* union of ActionInfo */ |
209 | typedef 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; | |
c1a71d1c | 213 | MPI_TB_FC_MANAGE_FRAME_SIZE_AI FrameSize; |
1da177e4 LT |
214 | } MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION, |
215 | MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t; | |
216 | ||
217 | typedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST | |
218 | { | |
219 | U8 Tool; /* 00h */ | |
220 | U8 Reserved; /* 01h */ | |
221 | U8 ChainOffset; /* 02h */ | |
222 | U8 Function; /* 03h */ | |
223 | U16 Reserved1; /* 04h */ | |
224 | U8 Reserved2; /* 06h */ | |
225 | U8 MsgFlags; /* 07h */ | |
226 | U32 MsgContext; /* 08h */ | |
227 | U8 Action; /* 0Ch */ | |
228 | U8 Reserved3; /* 0Dh */ | |
229 | U16 Reserved4; /* 0Eh */ | |
230 | MPI_TB_FC_MANAGE_AI_UNION ActionInfo; /* 10h */ | |
231 | } MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST, | |
232 | ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t; | |
233 | ||
234 | /* defines for the Action field */ | |
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) | |
c1a71d1c MED |
238 | #define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE (0x03) |
239 | ||
240 | ||
241 | /****************************************************************************/ | |
242 | /* Toolbox Beacon Tool request */ | |
243 | /****************************************************************************/ | |
244 | ||
245 | typedef struct _MSG_TOOLBOX_BEACON_REQUEST | |
246 | { | |
247 | U8 Tool; /* 00h */ | |
248 | U8 Reserved; /* 01h */ | |
249 | U8 ChainOffset; /* 02h */ | |
250 | U8 Function; /* 03h */ | |
251 | U16 Reserved1; /* 04h */ | |
252 | U8 Reserved2; /* 06h */ | |
253 | U8 MsgFlags; /* 07h */ | |
254 | U32 MsgContext; /* 08h */ | |
255 | U8 ConnectNum; /* 0Ch */ | |
256 | U8 PortNum; /* 0Dh */ | |
257 | U8 Reserved3; /* 0Eh */ | |
258 | U8 Flags; /* 0Fh */ | |
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) | |
1da177e4 LT |
264 | |
265 | ||
266 | /****************************************************************************/ | |
267 | /* Diagnostic Buffer Post request */ | |
268 | /****************************************************************************/ | |
269 | ||
270 | typedef struct _MSG_DIAG_BUFFER_POST_REQUEST | |
271 | { | |
272 | U8 TraceLevel; /* 00h */ | |
273 | U8 BufferType; /* 01h */ | |
274 | U8 ChainOffset; /* 02h */ | |
275 | U8 Function; /* 03h */ | |
276 | U16 Reserved1; /* 04h */ | |
277 | U8 Reserved2; /* 06h */ | |
278 | U8 MsgFlags; /* 07h */ | |
279 | U32 MsgContext; /* 08h */ | |
280 | U32 ExtendedType; /* 0Ch */ | |
281 | U32 BufferLength; /* 10h */ | |
282 | U32 ProductSpecific[4]; /* 14h */ | |
c1a71d1c MED |
283 | U32 Reserved3; /* 24h */ |
284 | U64 BufferAddress; /* 28h */ | |
1da177e4 LT |
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) | |
c1a71d1c MED |
291 | /* count of the number of buffer types */ |
292 | #define MPI_DIAG_BUF_TYPE_COUNT (0x03) | |
1da177e4 LT |
293 | |
294 | #define MPI_DIAG_EXTENDED_QTAG (0x00000001) | |
295 | ||
296 | ||
297 | /* Diagnostic Buffer Post reply */ | |
298 | typedef struct _MSG_DIAG_BUFFER_POST_REPLY | |
299 | { | |
300 | U8 Reserved1; /* 00h */ | |
301 | U8 BufferType; /* 01h */ | |
302 | U8 MsgLength; /* 02h */ | |
303 | U8 Function; /* 03h */ | |
304 | U16 Reserved2; /* 04h */ | |
305 | U8 Reserved3; /* 06h */ | |
306 | U8 MsgFlags; /* 07h */ | |
307 | U32 MsgContext; /* 08h */ | |
308 | U16 Reserved4; /* 0Ch */ | |
309 | U16 IOCStatus; /* 0Eh */ | |
310 | U32 IOCLogInfo; /* 10h */ | |
311 | U32 TransferLength; /* 14h */ | |
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 | /* Diagnostic Release request */ | |
318 | /****************************************************************************/ | |
319 | ||
320 | typedef struct _MSG_DIAG_RELEASE_REQUEST | |
321 | { | |
322 | U8 Reserved1; /* 00h */ | |
323 | U8 BufferType; /* 01h */ | |
324 | U8 ChainOffset; /* 02h */ | |
325 | U8 Function; /* 03h */ | |
326 | U16 Reserved2; /* 04h */ | |
327 | U8 Reserved3; /* 06h */ | |
328 | U8 MsgFlags; /* 07h */ | |
329 | U32 MsgContext; /* 08h */ | |
330 | } MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST, | |
331 | DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t; | |
332 | ||
333 | ||
334 | /* Diagnostic Release reply */ | |
335 | typedef struct _MSG_DIAG_RELEASE_REPLY | |
336 | { | |
337 | U8 Reserved1; /* 00h */ | |
338 | U8 BufferType; /* 01h */ | |
339 | U8 MsgLength; /* 02h */ | |
340 | U8 Function; /* 03h */ | |
341 | U16 Reserved2; /* 04h */ | |
342 | U8 Reserved3; /* 06h */ | |
343 | U8 MsgFlags; /* 07h */ | |
344 | U32 MsgContext; /* 08h */ | |
345 | U16 Reserved4; /* 0Ch */ | |
346 | U16 IOCStatus; /* 0Eh */ | |
347 | U32 IOCLogInfo; /* 10h */ | |
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 |