Deleted Added
full compact
mpi2_tool.h (283661) mpi2_tool.h (299263)
1/*-
2 * Copyright (c) 2012-2015 LSI Corp.
1/*-
2 * Copyright (c) 2012-2015 LSI Corp.
3 * Copyright (c) 2013-2015 Avago Technologies
3 * Copyright (c) 2013-2016 Avago Technologies
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of the author nor the names of any co-contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
31 *
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of the author nor the names of any co-contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
31 *
32 * $FreeBSD: head/sys/dev/mpr/mpi/mpi2_tool.h 283661 2015-05-28 18:24:22Z slm $
32 * $FreeBSD: head/sys/dev/mpr/mpi/mpi2_tool.h 299263 2016-05-09 16:12:32Z slm $
33 */
34
35/*
36 * Copyright (c) 2000-2015 LSI Corporation.
33 */
34
35/*
36 * Copyright (c) 2000-2015 LSI Corporation.
37 * Copyright (c) 2013-2015 Avago Technologies
37 * Copyright (c) 2013-2016 Avago Technologies
38 * All rights reserved.
38 *
39 *
40 * Name: mpi2_tool.h
41 * Title: MPI diagnostic tool structures and definitions
42 * Creation Date: March 26, 2007
43 *
39 *
40 *
41 * Name: mpi2_tool.h
42 * Title: MPI diagnostic tool structures and definitions
43 * Creation Date: March 26, 2007
44 *
44 * mpi2_tool.h Version: 02.00.11
45 * mpi2_tool.h Version: 02.00.13
45 *
46 * Version History
47 * ---------------
48 *
49 * Date Version Description
50 * -------- -------- ------------------------------------------------------
51 * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A.
52 * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release
53 * structures and defines.
54 * 02-29-08 02.00.02 Modified various names to make them 32-character unique.
55 * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool.
56 * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request
57 * and reply messages.
58 * Added MPI2_DIAG_BUF_TYPE_EXTENDED.
59 * Incremented MPI2_DIAG_BUF_TYPE_COUNT.
60 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool.
61 * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer
62 * Post Request.
63 * 05-25-11 02.00.07 Added Flags field and related defines to
64 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
65 * 11-18-11 02.00.08 Incorporating additions for MPI v2.5.
66 * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request
67 * message.
68 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
69 * it uses MPI Chain SGE as well as MPI Simple SGE.
70 * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
46 *
47 * Version History
48 * ---------------
49 *
50 * Date Version Description
51 * -------- -------- ------------------------------------------------------
52 * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A.
53 * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release
54 * structures and defines.
55 * 02-29-08 02.00.02 Modified various names to make them 32-character unique.
56 * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool.
57 * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request
58 * and reply messages.
59 * Added MPI2_DIAG_BUF_TYPE_EXTENDED.
60 * Incremented MPI2_DIAG_BUF_TYPE_COUNT.
61 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool.
62 * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer
63 * Post Request.
64 * 05-25-11 02.00.07 Added Flags field and related defines to
65 * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
66 * 11-18-11 02.00.08 Incorporating additions for MPI v2.5.
67 * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request
68 * message.
69 * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
70 * it uses MPI Chain SGE as well as MPI Simple SGE.
71 * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
72 * 01-08-14 02.00.12 Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC.
73 * 11-18-14 02.00.13 Updated copyright information.
71 * --------------------------------------------------------------------------
72 */
73
74#ifndef MPI2_TOOL_H
75#define MPI2_TOOL_H
76
77/*****************************************************************************
78*
79* Toolbox Messages
80*
81*****************************************************************************/
82
83/* defines for the Tools */
84#define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
85#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
86#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
87#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
88#define MPI2_TOOLBOX_BEACON_TOOL (0x05)
89#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
90#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07)
91
92
93/****************************************************************************
94* Toolbox reply
95****************************************************************************/
96
97typedef struct _MPI2_TOOLBOX_REPLY
98{
99 U8 Tool; /* 0x00 */
100 U8 Reserved1; /* 0x01 */
101 U8 MsgLength; /* 0x02 */
102 U8 Function; /* 0x03 */
103 U16 Reserved2; /* 0x04 */
104 U8 Reserved3; /* 0x06 */
105 U8 MsgFlags; /* 0x07 */
106 U8 VP_ID; /* 0x08 */
107 U8 VF_ID; /* 0x09 */
108 U16 Reserved4; /* 0x0A */
109 U16 Reserved5; /* 0x0C */
110 U16 IOCStatus; /* 0x0E */
111 U32 IOCLogInfo; /* 0x10 */
112} MPI2_TOOLBOX_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_REPLY,
113 Mpi2ToolboxReply_t, MPI2_POINTER pMpi2ToolboxReply_t;
114
115
116/****************************************************************************
117* Toolbox Clean Tool request
118****************************************************************************/
119
120typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
121{
122 U8 Tool; /* 0x00 */
123 U8 Reserved1; /* 0x01 */
124 U8 ChainOffset; /* 0x02 */
125 U8 Function; /* 0x03 */
126 U16 Reserved2; /* 0x04 */
127 U8 Reserved3; /* 0x06 */
128 U8 MsgFlags; /* 0x07 */
129 U8 VP_ID; /* 0x08 */
130 U8 VF_ID; /* 0x09 */
131 U16 Reserved4; /* 0x0A */
132 U32 Flags; /* 0x0C */
133 } MPI2_TOOLBOX_CLEAN_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
134 Mpi2ToolboxCleanRequest_t, MPI2_POINTER pMpi2ToolboxCleanRequest_t;
135
136/* values for the Flags field */
137#define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
138#define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
139#define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
140#define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
141#define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
74 * --------------------------------------------------------------------------
75 */
76
77#ifndef MPI2_TOOL_H
78#define MPI2_TOOL_H
79
80/*****************************************************************************
81*
82* Toolbox Messages
83*
84*****************************************************************************/
85
86/* defines for the Tools */
87#define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
88#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
89#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
90#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
91#define MPI2_TOOLBOX_BEACON_TOOL (0x05)
92#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
93#define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07)
94
95
96/****************************************************************************
97* Toolbox reply
98****************************************************************************/
99
100typedef struct _MPI2_TOOLBOX_REPLY
101{
102 U8 Tool; /* 0x00 */
103 U8 Reserved1; /* 0x01 */
104 U8 MsgLength; /* 0x02 */
105 U8 Function; /* 0x03 */
106 U16 Reserved2; /* 0x04 */
107 U8 Reserved3; /* 0x06 */
108 U8 MsgFlags; /* 0x07 */
109 U8 VP_ID; /* 0x08 */
110 U8 VF_ID; /* 0x09 */
111 U16 Reserved4; /* 0x0A */
112 U16 Reserved5; /* 0x0C */
113 U16 IOCStatus; /* 0x0E */
114 U32 IOCLogInfo; /* 0x10 */
115} MPI2_TOOLBOX_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_REPLY,
116 Mpi2ToolboxReply_t, MPI2_POINTER pMpi2ToolboxReply_t;
117
118
119/****************************************************************************
120* Toolbox Clean Tool request
121****************************************************************************/
122
123typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
124{
125 U8 Tool; /* 0x00 */
126 U8 Reserved1; /* 0x01 */
127 U8 ChainOffset; /* 0x02 */
128 U8 Function; /* 0x03 */
129 U16 Reserved2; /* 0x04 */
130 U8 Reserved3; /* 0x06 */
131 U8 MsgFlags; /* 0x07 */
132 U8 VP_ID; /* 0x08 */
133 U8 VF_ID; /* 0x09 */
134 U16 Reserved4; /* 0x0A */
135 U32 Flags; /* 0x0C */
136 } MPI2_TOOLBOX_CLEAN_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
137 Mpi2ToolboxCleanRequest_t, MPI2_POINTER pMpi2ToolboxCleanRequest_t;
138
139/* values for the Flags field */
140#define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000)
141#define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000)
142#define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000)
143#define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000)
144#define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000)
145#define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC (0x04000000)
142#define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000)
143#define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000)
144#define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004)
145#define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002)
146#define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001)
147
148
149/****************************************************************************
150* Toolbox Memory Move request
151****************************************************************************/
152
153typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
154{
155 U8 Tool; /* 0x00 */
156 U8 Reserved1; /* 0x01 */
157 U8 ChainOffset; /* 0x02 */
158 U8 Function; /* 0x03 */
159 U16 Reserved2; /* 0x04 */
160 U8 Reserved3; /* 0x06 */
161 U8 MsgFlags; /* 0x07 */
162 U8 VP_ID; /* 0x08 */
163 U8 VF_ID; /* 0x09 */
164 U16 Reserved4; /* 0x0A */
165 MPI2_SGE_SIMPLE_UNION SGL; /* 0x0C */
166} MPI2_TOOLBOX_MEM_MOVE_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
167 Mpi2ToolboxMemMoveRequest_t, MPI2_POINTER pMpi2ToolboxMemMoveRequest_t;
168
169
170/****************************************************************************
171* Toolbox Diagnostic Data Upload request
172****************************************************************************/
173
174typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
175{
176 U8 Tool; /* 0x00 */
177 U8 Reserved1; /* 0x01 */
178 U8 ChainOffset; /* 0x02 */
179 U8 Function; /* 0x03 */
180 U16 Reserved2; /* 0x04 */
181 U8 Reserved3; /* 0x06 */
182 U8 MsgFlags; /* 0x07 */
183 U8 VP_ID; /* 0x08 */
184 U8 VF_ID; /* 0x09 */
185 U16 Reserved4; /* 0x0A */
186 U8 SGLFlags; /* 0x0C */
187 U8 Reserved5; /* 0x0D */
188 U16 Reserved6; /* 0x0E */
189 U32 Flags; /* 0x10 */
190 U32 DataLength; /* 0x14 */
191 MPI2_SGE_SIMPLE_UNION SGL; /* 0x18 */
192} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
193 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
194 Mpi2ToolboxDiagDataUploadRequest_t,
195 MPI2_POINTER pMpi2ToolboxDiagDataUploadRequest_t;
196
197/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
198
199
200typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER
201{
202 U32 DiagDataLength; /* 00h */
203 U8 FormatCode; /* 04h */
204 U8 Reserved1; /* 05h */
205 U16 Reserved2; /* 06h */
206} MPI2_DIAG_DATA_UPLOAD_HEADER, MPI2_POINTER PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
207 Mpi2DiagDataUploadHeader_t, MPI2_POINTER pMpi2DiagDataUploadHeader_t;
208
209
210/****************************************************************************
211* Toolbox ISTWI Read Write Tool
212****************************************************************************/
213
214/* Toolbox ISTWI Read Write Tool request message */
215typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST
216{
217 U8 Tool; /* 0x00 */
218 U8 Reserved1; /* 0x01 */
219 U8 ChainOffset; /* 0x02 */
220 U8 Function; /* 0x03 */
221 U16 Reserved2; /* 0x04 */
222 U8 Reserved3; /* 0x06 */
223 U8 MsgFlags; /* 0x07 */
224 U8 VP_ID; /* 0x08 */
225 U8 VF_ID; /* 0x09 */
226 U16 Reserved4; /* 0x0A */
227 U32 Reserved5; /* 0x0C */
228 U32 Reserved6; /* 0x10 */
229 U8 DevIndex; /* 0x14 */
230 U8 Action; /* 0x15 */
231 U8 SGLFlags; /* 0x16 */
232 U8 Flags; /* 0x17 */
233 U16 TxDataLength; /* 0x18 */
234 U16 RxDataLength; /* 0x1A */
235 U32 Reserved8; /* 0x1C */
236 U32 Reserved9; /* 0x20 */
237 U32 Reserved10; /* 0x24 */
238 U32 Reserved11; /* 0x28 */
239 U32 Reserved12; /* 0x2C */
240 MPI2_SGE_SIMPLE_UNION SGL; /* 0x30 */
241} MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
242 MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
243 Mpi2ToolboxIstwiReadWriteRequest_t,
244 MPI2_POINTER pMpi2ToolboxIstwiReadWriteRequest_t;
245
246/* values for the Action field */
247#define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01)
248#define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02)
249#define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03)
250#define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10)
251#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11)
252#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12)
253
254/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
255
256/* values for the Flags field */
257#define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80)
258#define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07)
259
260
261/* Toolbox ISTWI Read Write Tool reply message */
262typedef struct _MPI2_TOOLBOX_ISTWI_REPLY
263{
264 U8 Tool; /* 0x00 */
265 U8 Reserved1; /* 0x01 */
266 U8 MsgLength; /* 0x02 */
267 U8 Function; /* 0x03 */
268 U16 Reserved2; /* 0x04 */
269 U8 Reserved3; /* 0x06 */
270 U8 MsgFlags; /* 0x07 */
271 U8 VP_ID; /* 0x08 */
272 U8 VF_ID; /* 0x09 */
273 U16 Reserved4; /* 0x0A */
274 U16 Reserved5; /* 0x0C */
275 U16 IOCStatus; /* 0x0E */
276 U32 IOCLogInfo; /* 0x10 */
277 U8 DevIndex; /* 0x14 */
278 U8 Action; /* 0x15 */
279 U8 IstwiStatus; /* 0x16 */
280 U8 Reserved6; /* 0x17 */
281 U16 TxDataCount; /* 0x18 */
282 U16 RxDataCount; /* 0x1A */
283} MPI2_TOOLBOX_ISTWI_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_REPLY,
284 Mpi2ToolboxIstwiReply_t, MPI2_POINTER pMpi2ToolboxIstwiReply_t;
285
286
287/****************************************************************************
288* Toolbox Beacon Tool request
289****************************************************************************/
290
291typedef struct _MPI2_TOOLBOX_BEACON_REQUEST
292{
293 U8 Tool; /* 0x00 */
294 U8 Reserved1; /* 0x01 */
295 U8 ChainOffset; /* 0x02 */
296 U8 Function; /* 0x03 */
297 U16 Reserved2; /* 0x04 */
298 U8 Reserved3; /* 0x06 */
299 U8 MsgFlags; /* 0x07 */
300 U8 VP_ID; /* 0x08 */
301 U8 VF_ID; /* 0x09 */
302 U16 Reserved4; /* 0x0A */
303 U8 Reserved5; /* 0x0C */
304 U8 PhysicalPort; /* 0x0D */
305 U8 Reserved6; /* 0x0E */
306 U8 Flags; /* 0x0F */
307} MPI2_TOOLBOX_BEACON_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_BEACON_REQUEST,
308 Mpi2ToolboxBeaconRequest_t, MPI2_POINTER pMpi2ToolboxBeaconRequest_t;
309
310/* values for the Flags field */
311#define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00)
312#define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01)
313
314
315/****************************************************************************
316* Toolbox Diagnostic CLI Tool
317****************************************************************************/
318
319#define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C)
320
321/* MPI v2.0 Toolbox Diagnostic CLI Tool request message */
322typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
323{
324 U8 Tool; /* 0x00 */
325 U8 Reserved1; /* 0x01 */
326 U8 ChainOffset; /* 0x02 */
327 U8 Function; /* 0x03 */
328 U16 Reserved2; /* 0x04 */
329 U8 Reserved3; /* 0x06 */
330 U8 MsgFlags; /* 0x07 */
331 U8 VP_ID; /* 0x08 */
332 U8 VF_ID; /* 0x09 */
333 U16 Reserved4; /* 0x0A */
334 U8 SGLFlags; /* 0x0C */
335 U8 Reserved5; /* 0x0D */
336 U16 Reserved6; /* 0x0E */
337 U32 DataLength; /* 0x10 */
338 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
339 MPI2_MPI_SGE_IO_UNION SGL; /* 0x70 */
340} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
341 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
342 Mpi2ToolboxDiagnosticCliRequest_t,
343 MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t;
344
345/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
346
347
348/* MPI v2.5 Toolbox Diagnostic CLI Tool request message */
349typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
350{
351 U8 Tool; /* 0x00 */
352 U8 Reserved1; /* 0x01 */
353 U8 ChainOffset; /* 0x02 */
354 U8 Function; /* 0x03 */
355 U16 Reserved2; /* 0x04 */
356 U8 Reserved3; /* 0x06 */
357 U8 MsgFlags; /* 0x07 */
358 U8 VP_ID; /* 0x08 */
359 U8 VF_ID; /* 0x09 */
360 U16 Reserved4; /* 0x0A */
361 U32 Reserved5; /* 0x0C */
362 U32 DataLength; /* 0x10 */
363 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
364 MPI25_SGE_IO_UNION SGL; /* 0x70 */
365} MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
366 MPI2_POINTER PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
367 Mpi25ToolboxDiagnosticCliRequest_t,
368 MPI2_POINTER pMpi25ToolboxDiagnosticCliRequest_t;
369
370
371/* Toolbox Diagnostic CLI Tool reply message */
372typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY
373{
374 U8 Tool; /* 0x00 */
375 U8 Reserved1; /* 0x01 */
376 U8 MsgLength; /* 0x02 */
377 U8 Function; /* 0x03 */
378 U16 Reserved2; /* 0x04 */
379 U8 Reserved3; /* 0x06 */
380 U8 MsgFlags; /* 0x07 */
381 U8 VP_ID; /* 0x08 */
382 U8 VF_ID; /* 0x09 */
383 U16 Reserved4; /* 0x0A */
384 U16 Reserved5; /* 0x0C */
385 U16 IOCStatus; /* 0x0E */
386 U32 IOCLogInfo; /* 0x10 */
387 U32 ReturnedDataLength; /* 0x14 */
388} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
389 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
390 Mpi2ToolboxDiagnosticCliReply_t,
391 MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t;
392
393
394/****************************************************************************
395* Toolbox Console Text Display Tool
396****************************************************************************/
397
398/* Toolbox Console Text Display Tool request message */
399typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST
400{
401 U8 Tool; /* 0x00 */
402 U8 Reserved1; /* 0x01 */
403 U8 ChainOffset; /* 0x02 */
404 U8 Function; /* 0x03 */
405 U16 Reserved2; /* 0x04 */
406 U8 Reserved3; /* 0x06 */
407 U8 MsgFlags; /* 0x07 */
408 U8 VP_ID; /* 0x08 */
409 U8 VF_ID; /* 0x09 */
410 U16 Reserved4; /* 0x0A */
411 U8 Console; /* 0x0C */
412 U8 Flags; /* 0x0D */
413 U16 Reserved6; /* 0x0E */
414 U8 TextToDisplay[4]; /* 0x10 */ /* actual length determined at runtime based on frame size */
415} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
416 MPI2_POINTER PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
417 Mpi2ToolboxTextDisplayRequest_t,
418 MPI2_POINTER pMpi2ToolboxTextDisplayRequest_t;
419
420/* defines for the Console field */
421#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0)
422#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00)
423#define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10)
424#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20)
425
426#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F)
427
428/* defines for the Flags field */
429#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01)
430
431
432
433/*****************************************************************************
434*
435* Diagnostic Buffer Messages
436*
437*****************************************************************************/
438
439
440/****************************************************************************
441* Diagnostic Buffer Post request
442****************************************************************************/
443
444typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST
445{
446 U8 ExtendedType; /* 0x00 */
447 U8 BufferType; /* 0x01 */
448 U8 ChainOffset; /* 0x02 */
449 U8 Function; /* 0x03 */
450 U16 Reserved2; /* 0x04 */
451 U8 Reserved3; /* 0x06 */
452 U8 MsgFlags; /* 0x07 */
453 U8 VP_ID; /* 0x08 */
454 U8 VF_ID; /* 0x09 */
455 U16 Reserved4; /* 0x0A */
456 U64 BufferAddress; /* 0x0C */
457 U32 BufferLength; /* 0x14 */
458 U32 Reserved5; /* 0x18 */
459 U32 Reserved6; /* 0x1C */
460 U32 Flags; /* 0x20 */
461 U32 ProductSpecific[23]; /* 0x24 */
462} MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
463 Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t;
464
465/* values for the ExtendedType field */
466#define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02)
467
468/* values for the BufferType field */
469#define MPI2_DIAG_BUF_TYPE_TRACE (0x00)
470#define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01)
471#define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02)
472/* count of the number of buffer types */
473#define MPI2_DIAG_BUF_TYPE_COUNT (0x03)
474
475/* values for the Flags field */
476#define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) /* for MPI v2.0 products only */
477#define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001)
478
479
480/****************************************************************************
481* Diagnostic Buffer Post reply
482****************************************************************************/
483
484typedef struct _MPI2_DIAG_BUFFER_POST_REPLY
485{
486 U8 ExtendedType; /* 0x00 */
487 U8 BufferType; /* 0x01 */
488 U8 MsgLength; /* 0x02 */
489 U8 Function; /* 0x03 */
490 U16 Reserved2; /* 0x04 */
491 U8 Reserved3; /* 0x06 */
492 U8 MsgFlags; /* 0x07 */
493 U8 VP_ID; /* 0x08 */
494 U8 VF_ID; /* 0x09 */
495 U16 Reserved4; /* 0x0A */
496 U16 Reserved5; /* 0x0C */
497 U16 IOCStatus; /* 0x0E */
498 U32 IOCLogInfo; /* 0x10 */
499 U32 TransferLength; /* 0x14 */
500} MPI2_DIAG_BUFFER_POST_REPLY, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REPLY,
501 Mpi2DiagBufferPostReply_t, MPI2_POINTER pMpi2DiagBufferPostReply_t;
502
503
504/****************************************************************************
505* Diagnostic Release request
506****************************************************************************/
507
508typedef struct _MPI2_DIAG_RELEASE_REQUEST
509{
510 U8 Reserved1; /* 0x00 */
511 U8 BufferType; /* 0x01 */
512 U8 ChainOffset; /* 0x02 */
513 U8 Function; /* 0x03 */
514 U16 Reserved2; /* 0x04 */
515 U8 Reserved3; /* 0x06 */
516 U8 MsgFlags; /* 0x07 */
517 U8 VP_ID; /* 0x08 */
518 U8 VF_ID; /* 0x09 */
519 U16 Reserved4; /* 0x0A */
520} MPI2_DIAG_RELEASE_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REQUEST,
521 Mpi2DiagReleaseRequest_t, MPI2_POINTER pMpi2DiagReleaseRequest_t;
522
523
524/****************************************************************************
525* Diagnostic Buffer Post reply
526****************************************************************************/
527
528typedef struct _MPI2_DIAG_RELEASE_REPLY
529{
530 U8 Reserved1; /* 0x00 */
531 U8 BufferType; /* 0x01 */
532 U8 MsgLength; /* 0x02 */
533 U8 Function; /* 0x03 */
534 U16 Reserved2; /* 0x04 */
535 U8 Reserved3; /* 0x06 */
536 U8 MsgFlags; /* 0x07 */
537 U8 VP_ID; /* 0x08 */
538 U8 VF_ID; /* 0x09 */
539 U16 Reserved4; /* 0x0A */
540 U16 Reserved5; /* 0x0C */
541 U16 IOCStatus; /* 0x0E */
542 U32 IOCLogInfo; /* 0x10 */
543} MPI2_DIAG_RELEASE_REPLY, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REPLY,
544 Mpi2DiagReleaseReply_t, MPI2_POINTER pMpi2DiagReleaseReply_t;
545
546
547#endif
548
146#define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000)
147#define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000)
148#define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004)
149#define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002)
150#define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001)
151
152
153/****************************************************************************
154* Toolbox Memory Move request
155****************************************************************************/
156
157typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
158{
159 U8 Tool; /* 0x00 */
160 U8 Reserved1; /* 0x01 */
161 U8 ChainOffset; /* 0x02 */
162 U8 Function; /* 0x03 */
163 U16 Reserved2; /* 0x04 */
164 U8 Reserved3; /* 0x06 */
165 U8 MsgFlags; /* 0x07 */
166 U8 VP_ID; /* 0x08 */
167 U8 VF_ID; /* 0x09 */
168 U16 Reserved4; /* 0x0A */
169 MPI2_SGE_SIMPLE_UNION SGL; /* 0x0C */
170} MPI2_TOOLBOX_MEM_MOVE_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
171 Mpi2ToolboxMemMoveRequest_t, MPI2_POINTER pMpi2ToolboxMemMoveRequest_t;
172
173
174/****************************************************************************
175* Toolbox Diagnostic Data Upload request
176****************************************************************************/
177
178typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
179{
180 U8 Tool; /* 0x00 */
181 U8 Reserved1; /* 0x01 */
182 U8 ChainOffset; /* 0x02 */
183 U8 Function; /* 0x03 */
184 U16 Reserved2; /* 0x04 */
185 U8 Reserved3; /* 0x06 */
186 U8 MsgFlags; /* 0x07 */
187 U8 VP_ID; /* 0x08 */
188 U8 VF_ID; /* 0x09 */
189 U16 Reserved4; /* 0x0A */
190 U8 SGLFlags; /* 0x0C */
191 U8 Reserved5; /* 0x0D */
192 U16 Reserved6; /* 0x0E */
193 U32 Flags; /* 0x10 */
194 U32 DataLength; /* 0x14 */
195 MPI2_SGE_SIMPLE_UNION SGL; /* 0x18 */
196} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
197 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
198 Mpi2ToolboxDiagDataUploadRequest_t,
199 MPI2_POINTER pMpi2ToolboxDiagDataUploadRequest_t;
200
201/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
202
203
204typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER
205{
206 U32 DiagDataLength; /* 00h */
207 U8 FormatCode; /* 04h */
208 U8 Reserved1; /* 05h */
209 U16 Reserved2; /* 06h */
210} MPI2_DIAG_DATA_UPLOAD_HEADER, MPI2_POINTER PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
211 Mpi2DiagDataUploadHeader_t, MPI2_POINTER pMpi2DiagDataUploadHeader_t;
212
213
214/****************************************************************************
215* Toolbox ISTWI Read Write Tool
216****************************************************************************/
217
218/* Toolbox ISTWI Read Write Tool request message */
219typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST
220{
221 U8 Tool; /* 0x00 */
222 U8 Reserved1; /* 0x01 */
223 U8 ChainOffset; /* 0x02 */
224 U8 Function; /* 0x03 */
225 U16 Reserved2; /* 0x04 */
226 U8 Reserved3; /* 0x06 */
227 U8 MsgFlags; /* 0x07 */
228 U8 VP_ID; /* 0x08 */
229 U8 VF_ID; /* 0x09 */
230 U16 Reserved4; /* 0x0A */
231 U32 Reserved5; /* 0x0C */
232 U32 Reserved6; /* 0x10 */
233 U8 DevIndex; /* 0x14 */
234 U8 Action; /* 0x15 */
235 U8 SGLFlags; /* 0x16 */
236 U8 Flags; /* 0x17 */
237 U16 TxDataLength; /* 0x18 */
238 U16 RxDataLength; /* 0x1A */
239 U32 Reserved8; /* 0x1C */
240 U32 Reserved9; /* 0x20 */
241 U32 Reserved10; /* 0x24 */
242 U32 Reserved11; /* 0x28 */
243 U32 Reserved12; /* 0x2C */
244 MPI2_SGE_SIMPLE_UNION SGL; /* 0x30 */
245} MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
246 MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
247 Mpi2ToolboxIstwiReadWriteRequest_t,
248 MPI2_POINTER pMpi2ToolboxIstwiReadWriteRequest_t;
249
250/* values for the Action field */
251#define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01)
252#define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02)
253#define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03)
254#define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10)
255#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11)
256#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12)
257
258/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
259
260/* values for the Flags field */
261#define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80)
262#define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07)
263
264
265/* Toolbox ISTWI Read Write Tool reply message */
266typedef struct _MPI2_TOOLBOX_ISTWI_REPLY
267{
268 U8 Tool; /* 0x00 */
269 U8 Reserved1; /* 0x01 */
270 U8 MsgLength; /* 0x02 */
271 U8 Function; /* 0x03 */
272 U16 Reserved2; /* 0x04 */
273 U8 Reserved3; /* 0x06 */
274 U8 MsgFlags; /* 0x07 */
275 U8 VP_ID; /* 0x08 */
276 U8 VF_ID; /* 0x09 */
277 U16 Reserved4; /* 0x0A */
278 U16 Reserved5; /* 0x0C */
279 U16 IOCStatus; /* 0x0E */
280 U32 IOCLogInfo; /* 0x10 */
281 U8 DevIndex; /* 0x14 */
282 U8 Action; /* 0x15 */
283 U8 IstwiStatus; /* 0x16 */
284 U8 Reserved6; /* 0x17 */
285 U16 TxDataCount; /* 0x18 */
286 U16 RxDataCount; /* 0x1A */
287} MPI2_TOOLBOX_ISTWI_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_REPLY,
288 Mpi2ToolboxIstwiReply_t, MPI2_POINTER pMpi2ToolboxIstwiReply_t;
289
290
291/****************************************************************************
292* Toolbox Beacon Tool request
293****************************************************************************/
294
295typedef struct _MPI2_TOOLBOX_BEACON_REQUEST
296{
297 U8 Tool; /* 0x00 */
298 U8 Reserved1; /* 0x01 */
299 U8 ChainOffset; /* 0x02 */
300 U8 Function; /* 0x03 */
301 U16 Reserved2; /* 0x04 */
302 U8 Reserved3; /* 0x06 */
303 U8 MsgFlags; /* 0x07 */
304 U8 VP_ID; /* 0x08 */
305 U8 VF_ID; /* 0x09 */
306 U16 Reserved4; /* 0x0A */
307 U8 Reserved5; /* 0x0C */
308 U8 PhysicalPort; /* 0x0D */
309 U8 Reserved6; /* 0x0E */
310 U8 Flags; /* 0x0F */
311} MPI2_TOOLBOX_BEACON_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_BEACON_REQUEST,
312 Mpi2ToolboxBeaconRequest_t, MPI2_POINTER pMpi2ToolboxBeaconRequest_t;
313
314/* values for the Flags field */
315#define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00)
316#define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01)
317
318
319/****************************************************************************
320* Toolbox Diagnostic CLI Tool
321****************************************************************************/
322
323#define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C)
324
325/* MPI v2.0 Toolbox Diagnostic CLI Tool request message */
326typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
327{
328 U8 Tool; /* 0x00 */
329 U8 Reserved1; /* 0x01 */
330 U8 ChainOffset; /* 0x02 */
331 U8 Function; /* 0x03 */
332 U16 Reserved2; /* 0x04 */
333 U8 Reserved3; /* 0x06 */
334 U8 MsgFlags; /* 0x07 */
335 U8 VP_ID; /* 0x08 */
336 U8 VF_ID; /* 0x09 */
337 U16 Reserved4; /* 0x0A */
338 U8 SGLFlags; /* 0x0C */
339 U8 Reserved5; /* 0x0D */
340 U16 Reserved6; /* 0x0E */
341 U32 DataLength; /* 0x10 */
342 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
343 MPI2_MPI_SGE_IO_UNION SGL; /* 0x70 */
344} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
345 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
346 Mpi2ToolboxDiagnosticCliRequest_t,
347 MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t;
348
349/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
350
351
352/* MPI v2.5 Toolbox Diagnostic CLI Tool request message */
353typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
354{
355 U8 Tool; /* 0x00 */
356 U8 Reserved1; /* 0x01 */
357 U8 ChainOffset; /* 0x02 */
358 U8 Function; /* 0x03 */
359 U16 Reserved2; /* 0x04 */
360 U8 Reserved3; /* 0x06 */
361 U8 MsgFlags; /* 0x07 */
362 U8 VP_ID; /* 0x08 */
363 U8 VF_ID; /* 0x09 */
364 U16 Reserved4; /* 0x0A */
365 U32 Reserved5; /* 0x0C */
366 U32 DataLength; /* 0x10 */
367 U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
368 MPI25_SGE_IO_UNION SGL; /* 0x70 */
369} MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
370 MPI2_POINTER PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
371 Mpi25ToolboxDiagnosticCliRequest_t,
372 MPI2_POINTER pMpi25ToolboxDiagnosticCliRequest_t;
373
374
375/* Toolbox Diagnostic CLI Tool reply message */
376typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY
377{
378 U8 Tool; /* 0x00 */
379 U8 Reserved1; /* 0x01 */
380 U8 MsgLength; /* 0x02 */
381 U8 Function; /* 0x03 */
382 U16 Reserved2; /* 0x04 */
383 U8 Reserved3; /* 0x06 */
384 U8 MsgFlags; /* 0x07 */
385 U8 VP_ID; /* 0x08 */
386 U8 VF_ID; /* 0x09 */
387 U16 Reserved4; /* 0x0A */
388 U16 Reserved5; /* 0x0C */
389 U16 IOCStatus; /* 0x0E */
390 U32 IOCLogInfo; /* 0x10 */
391 U32 ReturnedDataLength; /* 0x14 */
392} MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
393 MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
394 Mpi2ToolboxDiagnosticCliReply_t,
395 MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t;
396
397
398/****************************************************************************
399* Toolbox Console Text Display Tool
400****************************************************************************/
401
402/* Toolbox Console Text Display Tool request message */
403typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST
404{
405 U8 Tool; /* 0x00 */
406 U8 Reserved1; /* 0x01 */
407 U8 ChainOffset; /* 0x02 */
408 U8 Function; /* 0x03 */
409 U16 Reserved2; /* 0x04 */
410 U8 Reserved3; /* 0x06 */
411 U8 MsgFlags; /* 0x07 */
412 U8 VP_ID; /* 0x08 */
413 U8 VF_ID; /* 0x09 */
414 U16 Reserved4; /* 0x0A */
415 U8 Console; /* 0x0C */
416 U8 Flags; /* 0x0D */
417 U16 Reserved6; /* 0x0E */
418 U8 TextToDisplay[4]; /* 0x10 */ /* actual length determined at runtime based on frame size */
419} MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
420 MPI2_POINTER PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
421 Mpi2ToolboxTextDisplayRequest_t,
422 MPI2_POINTER pMpi2ToolboxTextDisplayRequest_t;
423
424/* defines for the Console field */
425#define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0)
426#define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00)
427#define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10)
428#define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20)
429
430#define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F)
431
432/* defines for the Flags field */
433#define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01)
434
435
436
437/*****************************************************************************
438*
439* Diagnostic Buffer Messages
440*
441*****************************************************************************/
442
443
444/****************************************************************************
445* Diagnostic Buffer Post request
446****************************************************************************/
447
448typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST
449{
450 U8 ExtendedType; /* 0x00 */
451 U8 BufferType; /* 0x01 */
452 U8 ChainOffset; /* 0x02 */
453 U8 Function; /* 0x03 */
454 U16 Reserved2; /* 0x04 */
455 U8 Reserved3; /* 0x06 */
456 U8 MsgFlags; /* 0x07 */
457 U8 VP_ID; /* 0x08 */
458 U8 VF_ID; /* 0x09 */
459 U16 Reserved4; /* 0x0A */
460 U64 BufferAddress; /* 0x0C */
461 U32 BufferLength; /* 0x14 */
462 U32 Reserved5; /* 0x18 */
463 U32 Reserved6; /* 0x1C */
464 U32 Flags; /* 0x20 */
465 U32 ProductSpecific[23]; /* 0x24 */
466} MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
467 Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t;
468
469/* values for the ExtendedType field */
470#define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02)
471
472/* values for the BufferType field */
473#define MPI2_DIAG_BUF_TYPE_TRACE (0x00)
474#define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01)
475#define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02)
476/* count of the number of buffer types */
477#define MPI2_DIAG_BUF_TYPE_COUNT (0x03)
478
479/* values for the Flags field */
480#define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) /* for MPI v2.0 products only */
481#define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001)
482
483
484/****************************************************************************
485* Diagnostic Buffer Post reply
486****************************************************************************/
487
488typedef struct _MPI2_DIAG_BUFFER_POST_REPLY
489{
490 U8 ExtendedType; /* 0x00 */
491 U8 BufferType; /* 0x01 */
492 U8 MsgLength; /* 0x02 */
493 U8 Function; /* 0x03 */
494 U16 Reserved2; /* 0x04 */
495 U8 Reserved3; /* 0x06 */
496 U8 MsgFlags; /* 0x07 */
497 U8 VP_ID; /* 0x08 */
498 U8 VF_ID; /* 0x09 */
499 U16 Reserved4; /* 0x0A */
500 U16 Reserved5; /* 0x0C */
501 U16 IOCStatus; /* 0x0E */
502 U32 IOCLogInfo; /* 0x10 */
503 U32 TransferLength; /* 0x14 */
504} MPI2_DIAG_BUFFER_POST_REPLY, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REPLY,
505 Mpi2DiagBufferPostReply_t, MPI2_POINTER pMpi2DiagBufferPostReply_t;
506
507
508/****************************************************************************
509* Diagnostic Release request
510****************************************************************************/
511
512typedef struct _MPI2_DIAG_RELEASE_REQUEST
513{
514 U8 Reserved1; /* 0x00 */
515 U8 BufferType; /* 0x01 */
516 U8 ChainOffset; /* 0x02 */
517 U8 Function; /* 0x03 */
518 U16 Reserved2; /* 0x04 */
519 U8 Reserved3; /* 0x06 */
520 U8 MsgFlags; /* 0x07 */
521 U8 VP_ID; /* 0x08 */
522 U8 VF_ID; /* 0x09 */
523 U16 Reserved4; /* 0x0A */
524} MPI2_DIAG_RELEASE_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REQUEST,
525 Mpi2DiagReleaseRequest_t, MPI2_POINTER pMpi2DiagReleaseRequest_t;
526
527
528/****************************************************************************
529* Diagnostic Buffer Post reply
530****************************************************************************/
531
532typedef struct _MPI2_DIAG_RELEASE_REPLY
533{
534 U8 Reserved1; /* 0x00 */
535 U8 BufferType; /* 0x01 */
536 U8 MsgLength; /* 0x02 */
537 U8 Function; /* 0x03 */
538 U16 Reserved2; /* 0x04 */
539 U8 Reserved3; /* 0x06 */
540 U8 MsgFlags; /* 0x07 */
541 U8 VP_ID; /* 0x08 */
542 U8 VF_ID; /* 0x09 */
543 U16 Reserved4; /* 0x0A */
544 U16 Reserved5; /* 0x0C */
545 U16 IOCStatus; /* 0x0E */
546 U32 IOCLogInfo; /* 0x10 */
547} MPI2_DIAG_RELEASE_REPLY, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REPLY,
548 Mpi2DiagReleaseReply_t, MPI2_POINTER pMpi2DiagReleaseReply_t;
549
550
551#endif
552