xref: /freebsd/sys/dev/mpr/mpi/mpi2_tool.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1991554f2SKenneth D. Merry /*-
2*8736c018SKashyap D Desai  *  Copyright 2000-2020 Broadcom Inc. All rights reserved.
3991554f2SKenneth D. Merry  *
4991554f2SKenneth D. Merry  * Redistribution and use in source and binary forms, with or without
5991554f2SKenneth D. Merry  * modification, are permitted provided that the following conditions
6991554f2SKenneth D. Merry  * are met:
7991554f2SKenneth D. Merry  * 1. Redistributions of source code must retain the above copyright
8991554f2SKenneth D. Merry  *    notice, this list of conditions and the following disclaimer.
9991554f2SKenneth D. Merry  * 2. Redistributions in binary form must reproduce the above copyright
10991554f2SKenneth D. Merry  *    notice, this list of conditions and the following disclaimer in the
11991554f2SKenneth D. Merry  *    documentation and/or other materials provided with the distribution.
12991554f2SKenneth D. Merry  * 3. Neither the name of the author nor the names of any co-contributors
13991554f2SKenneth D. Merry  *    may be used to endorse or promote products derived from this software
14991554f2SKenneth D. Merry  *    without specific prior written permission.
15991554f2SKenneth D. Merry  *
16991554f2SKenneth D. Merry  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17991554f2SKenneth D. Merry  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18991554f2SKenneth D. Merry  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19991554f2SKenneth D. Merry  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20991554f2SKenneth D. Merry  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21991554f2SKenneth D. Merry  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22991554f2SKenneth D. Merry  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23991554f2SKenneth D. Merry  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24991554f2SKenneth D. Merry  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25991554f2SKenneth D. Merry  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26991554f2SKenneth D. Merry  * SUCH DAMAGE.
27991554f2SKenneth D. Merry  *
28*8736c018SKashyap D Desai  * Broadcom Inc. (LSI) MPT-Fusion Host Adapter FreeBSD
29991554f2SKenneth D. Merry  */
30991554f2SKenneth D. Merry 
31991554f2SKenneth D. Merry /*
32*8736c018SKashyap D Desai  *  Copyright 2000-2020 Broadcom Inc. All rights reserved.
33991554f2SKenneth D. Merry  *
34991554f2SKenneth D. Merry  *
35991554f2SKenneth D. Merry  *           Name:  mpi2_tool.h
36991554f2SKenneth D. Merry  *          Title:  MPI diagnostic tool structures and definitions
37991554f2SKenneth D. Merry  *  Creation Date:  March 26, 2007
38991554f2SKenneth D. Merry  *
39*8736c018SKashyap D Desai  *    mpi2_tool.h Version:  02.00.15
40991554f2SKenneth D. Merry  *
41991554f2SKenneth D. Merry  *  Version History
42991554f2SKenneth D. Merry  *  ---------------
43991554f2SKenneth D. Merry  *
44991554f2SKenneth D. Merry  *  Date      Version   Description
45991554f2SKenneth D. Merry  *  --------  --------  ------------------------------------------------------
46991554f2SKenneth D. Merry  *  04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
47991554f2SKenneth D. Merry  *  12-18-07  02.00.01  Added Diagnostic Buffer Post and Diagnostic Release
48991554f2SKenneth D. Merry  *                      structures and defines.
49991554f2SKenneth D. Merry  *  02-29-08  02.00.02  Modified various names to make them 32-character unique.
50991554f2SKenneth D. Merry  *  05-06-09  02.00.03  Added ISTWI Read Write Tool and Diagnostic CLI Tool.
51991554f2SKenneth D. Merry  *  07-30-09  02.00.04  Added ExtendedType field to DiagnosticBufferPost request
52991554f2SKenneth D. Merry  *                      and reply messages.
53991554f2SKenneth D. Merry  *                      Added MPI2_DIAG_BUF_TYPE_EXTENDED.
54991554f2SKenneth D. Merry  *                      Incremented MPI2_DIAG_BUF_TYPE_COUNT.
55991554f2SKenneth D. Merry  *  05-12-10  02.00.05  Added Diagnostic Data Upload tool.
56991554f2SKenneth D. Merry  *  08-11-10  02.00.06  Added defines that were missing for Diagnostic Buffer
57991554f2SKenneth D. Merry  *                      Post Request.
58991554f2SKenneth D. Merry  *  05-25-11  02.00.07  Added Flags field and related defines to
59991554f2SKenneth D. Merry  *                      MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST.
60991554f2SKenneth D. Merry  *  11-18-11  02.00.08  Incorporating additions for MPI v2.5.
61991554f2SKenneth D. Merry  *  07-10-12  02.00.09  Add MPI v2.5 Toolbox Diagnostic CLI Tool Request
62991554f2SKenneth D. Merry  *                      message.
63991554f2SKenneth D. Merry  *  07-26-12  02.00.10  Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that
64991554f2SKenneth D. Merry  *                      it uses MPI Chain SGE as well as MPI Simple SGE.
65991554f2SKenneth D. Merry  *  08-19-13  02.00.11  Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info.
6628ae62b0SStephen McConnell  *  01-08-14  02.00.12  Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC.
6728ae62b0SStephen McConnell  *  11-18-14  02.00.13  Updated copyright information.
6867feec50SStephen McConnell  *  08-25-16  02.00.14  Added new values for the Flags field of Toolbox Clean
6967feec50SStephen McConnell  *                      Tool Request Message.
70*8736c018SKashyap D Desai  *  07-22-18  02.00.15  Added defines for new TOOLBOX_PCIE_LANE_MARGINING tool.
71*8736c018SKashyap D Desai  *                      Added option for DeviceInfo field in ISTWI tool.
72991554f2SKenneth D. Merry  *  --------------------------------------------------------------------------
73991554f2SKenneth D. Merry  */
74991554f2SKenneth D. Merry 
75991554f2SKenneth D. Merry #ifndef MPI2_TOOL_H
76991554f2SKenneth D. Merry #define MPI2_TOOL_H
77991554f2SKenneth D. Merry 
78991554f2SKenneth D. Merry /*****************************************************************************
79991554f2SKenneth D. Merry *
80991554f2SKenneth D. Merry *               Toolbox Messages
81991554f2SKenneth D. Merry *
82991554f2SKenneth D. Merry *****************************************************************************/
83991554f2SKenneth D. Merry 
84991554f2SKenneth D. Merry /* defines for the Tools */
85991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_TOOL                     (0x00)
86991554f2SKenneth D. Merry #define MPI2_TOOLBOX_MEMORY_MOVE_TOOL               (0x01)
87991554f2SKenneth D. Merry #define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL          (0x02)
88991554f2SKenneth D. Merry #define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL          (0x03)
89991554f2SKenneth D. Merry #define MPI2_TOOLBOX_BEACON_TOOL                    (0x05)
90991554f2SKenneth D. Merry #define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL            (0x06)
91991554f2SKenneth D. Merry #define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL              (0x07)
92*8736c018SKashyap D Desai #define MPI26_TOOLBOX_BACKEND_PCIE_LANE_MARGIN      (0x08)
93991554f2SKenneth D. Merry 
94991554f2SKenneth D. Merry /****************************************************************************
95991554f2SKenneth D. Merry *  Toolbox reply
96991554f2SKenneth D. Merry ****************************************************************************/
97991554f2SKenneth D. Merry 
98991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_REPLY
99991554f2SKenneth D. Merry {
100991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
101991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
102991554f2SKenneth D. Merry     U8                      MsgLength;                  /* 0x02 */
103991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
104991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
105991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
106991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
107991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
108991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
109991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
110991554f2SKenneth D. Merry     U16                     Reserved5;                  /* 0x0C */
111991554f2SKenneth D. Merry     U16                     IOCStatus;                  /* 0x0E */
112991554f2SKenneth D. Merry     U32                     IOCLogInfo;                 /* 0x10 */
113991554f2SKenneth D. Merry } MPI2_TOOLBOX_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_REPLY,
114991554f2SKenneth D. Merry   Mpi2ToolboxReply_t, MPI2_POINTER pMpi2ToolboxReply_t;
115991554f2SKenneth D. Merry 
116991554f2SKenneth D. Merry /****************************************************************************
117991554f2SKenneth D. Merry *  Toolbox Clean Tool request
118991554f2SKenneth D. Merry ****************************************************************************/
119991554f2SKenneth D. Merry 
120991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
121991554f2SKenneth D. Merry {
122991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
123991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
124991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
125991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
126991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
127991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
128991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
129991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
130991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
131991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
132991554f2SKenneth D. Merry     U32                     Flags;                      /* 0x0C */
133991554f2SKenneth D. Merry    } MPI2_TOOLBOX_CLEAN_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_CLEAN_REQUEST,
134991554f2SKenneth D. Merry   Mpi2ToolboxCleanRequest_t, MPI2_POINTER pMpi2ToolboxCleanRequest_t;
135991554f2SKenneth D. Merry 
136991554f2SKenneth D. Merry /* values for the Flags field */
137991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES            (0x80000000)
138991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES   (0x40000000)
139991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES      (0x20000000)
140991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_FW_CURRENT               (0x10000000)
141991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_FW_BACKUP                (0x08000000)
14228ae62b0SStephen McConnell #define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC   (0x04000000)
143991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_MEGARAID                 (0x02000000)
144991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_INITIALIZATION           (0x01000000)
14567feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_SBR                      (0x00800000)
14667feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_SBR_BACKUP               (0x00400000)
14767feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_HIIM                     (0x00200000)
14867feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_HIIA                     (0x00100000)
14967feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_CTLR                     (0x00080000)
15067feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_IMR_FIRMWARE             (0x00040000)
15167feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_MR_NVDATA                (0x00020000)
15267feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_RESERVED_5_16            (0x0001FFE0)
15367feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_ALL_BUT_MPB              (0x00000010)
15467feec50SStephen McConnell #define MPI2_TOOLBOX_CLEAN_ENTIRE_FLASH             (0x00000008)
155991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_FLASH                    (0x00000004)
156991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_SEEPROM                  (0x00000002)
157991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CLEAN_NVSRAM                   (0x00000001)
158991554f2SKenneth D. Merry 
159991554f2SKenneth D. Merry /****************************************************************************
160991554f2SKenneth D. Merry *  Toolbox Memory Move request
161991554f2SKenneth D. Merry ****************************************************************************/
162991554f2SKenneth D. Merry 
163991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
164991554f2SKenneth D. Merry {
165991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
166991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
167991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
168991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
169991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
170991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
171991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
172991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
173991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
174991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
175991554f2SKenneth D. Merry     MPI2_SGE_SIMPLE_UNION   SGL;                        /* 0x0C */
176991554f2SKenneth D. Merry } MPI2_TOOLBOX_MEM_MOVE_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST,
177991554f2SKenneth D. Merry   Mpi2ToolboxMemMoveRequest_t, MPI2_POINTER pMpi2ToolboxMemMoveRequest_t;
178991554f2SKenneth D. Merry 
179991554f2SKenneth D. Merry /****************************************************************************
180991554f2SKenneth D. Merry *  Toolbox Diagnostic Data Upload request
181991554f2SKenneth D. Merry ****************************************************************************/
182991554f2SKenneth D. Merry 
183991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
184991554f2SKenneth D. Merry {
185991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
186991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
187991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
188991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
189991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
190991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
191991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
192991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
193991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
194991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
195991554f2SKenneth D. Merry     U8                      SGLFlags;                   /* 0x0C */
196991554f2SKenneth D. Merry     U8                      Reserved5;                  /* 0x0D */
197991554f2SKenneth D. Merry     U16                     Reserved6;                  /* 0x0E */
198991554f2SKenneth D. Merry     U32                     Flags;                      /* 0x10 */
199991554f2SKenneth D. Merry     U32                     DataLength;                 /* 0x14 */
200991554f2SKenneth D. Merry     MPI2_SGE_SIMPLE_UNION   SGL;                        /* 0x18 */
201991554f2SKenneth D. Merry } MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
202991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
203991554f2SKenneth D. Merry   Mpi2ToolboxDiagDataUploadRequest_t,
204991554f2SKenneth D. Merry   MPI2_POINTER pMpi2ToolboxDiagDataUploadRequest_t;
205991554f2SKenneth D. Merry 
206991554f2SKenneth D. Merry /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
207991554f2SKenneth D. Merry 
208991554f2SKenneth D. Merry typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER
209991554f2SKenneth D. Merry {
210991554f2SKenneth D. Merry     U32                     DiagDataLength;             /* 00h */
211991554f2SKenneth D. Merry     U8                      FormatCode;                 /* 04h */
212991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 05h */
213991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 06h */
214991554f2SKenneth D. Merry } MPI2_DIAG_DATA_UPLOAD_HEADER, MPI2_POINTER PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
215991554f2SKenneth D. Merry   Mpi2DiagDataUploadHeader_t, MPI2_POINTER pMpi2DiagDataUploadHeader_t;
216991554f2SKenneth D. Merry 
217991554f2SKenneth D. Merry /****************************************************************************
218991554f2SKenneth D. Merry *  Toolbox ISTWI Read Write Tool
219991554f2SKenneth D. Merry ****************************************************************************/
220991554f2SKenneth D. Merry 
221991554f2SKenneth D. Merry /* Toolbox ISTWI Read Write Tool request message */
222991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST
223991554f2SKenneth D. Merry {
224991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
225991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
226991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
227991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
228991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
229991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
230991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
231991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
232991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
233991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
234991554f2SKenneth D. Merry     U32                     Reserved5;                  /* 0x0C */
235991554f2SKenneth D. Merry     U32                     Reserved6;                  /* 0x10 */
236991554f2SKenneth D. Merry     U8                      DevIndex;                   /* 0x14 */
237991554f2SKenneth D. Merry     U8                      Action;                     /* 0x15 */
238991554f2SKenneth D. Merry     U8                      SGLFlags;                   /* 0x16 */
239991554f2SKenneth D. Merry     U8                      Flags;                      /* 0x17 */
240991554f2SKenneth D. Merry     U16                     TxDataLength;               /* 0x18 */
241991554f2SKenneth D. Merry     U16                     RxDataLength;               /* 0x1A */
242*8736c018SKashyap D Desai     U32                     DeviceInfo[3];              /* 0x1C */
243991554f2SKenneth D. Merry     U32                     Reserved11;                 /* 0x28 */
244991554f2SKenneth D. Merry     U32                     Reserved12;                 /* 0x2C */
245991554f2SKenneth D. Merry     MPI2_SGE_SIMPLE_UNION   SGL;                        /* 0x30 */
246991554f2SKenneth D. Merry } MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
247991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
248991554f2SKenneth D. Merry   Mpi2ToolboxIstwiReadWriteRequest_t,
249991554f2SKenneth D. Merry   MPI2_POINTER pMpi2ToolboxIstwiReadWriteRequest_t;
250991554f2SKenneth D. Merry 
251991554f2SKenneth D. Merry /* values for the Action field */
252991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_READ_DATA            (0x01)
253991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA           (0x02)
254991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_SEQUENCE             (0x03)
255991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS          (0x10)
256991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS          (0x11)
257991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_ACTION_RESET                (0x12)
258991554f2SKenneth D. Merry 
259991554f2SKenneth D. Merry /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
260991554f2SKenneth D. Merry 
261991554f2SKenneth D. Merry /* values for the Flags field */
262991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE   (0x80)
263991554f2SKenneth D. Merry #define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK         (0x07)
264991554f2SKenneth D. Merry 
265*8736c018SKashyap D Desai /* MPI26 TOOLBOX Request MsgFlags defines */
266*8736c018SKashyap D Desai #define MPI26_TOOLBOX_REQ_MSGFLAGS_ADDRESSING_MASK     (0x01)
267*8736c018SKashyap D Desai #define MPI26_TOOLBOX_REQ_MSGFLAGS_ADDRESSING_DEVINDEX (0x00)  /* Request uses Man Page 43 device index addressing */
268*8736c018SKashyap D Desai #define MPI26_TOOLBOX_REQ_MSGFLAGS_ADDRESSING_DEVINFO  (0x01)  /* Request uses Man Page 43 device info struct addressing */
269*8736c018SKashyap D Desai 
270991554f2SKenneth D. Merry /* Toolbox ISTWI Read Write Tool reply message */
271991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_ISTWI_REPLY
272991554f2SKenneth D. Merry {
273991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
274991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
275991554f2SKenneth D. Merry     U8                      MsgLength;                  /* 0x02 */
276991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
277991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
278991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
279991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
280991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
281991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
282991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
283991554f2SKenneth D. Merry     U16                     Reserved5;                  /* 0x0C */
284991554f2SKenneth D. Merry     U16                     IOCStatus;                  /* 0x0E */
285991554f2SKenneth D. Merry     U32                     IOCLogInfo;                 /* 0x10 */
286991554f2SKenneth D. Merry     U8                      DevIndex;                   /* 0x14 */
287991554f2SKenneth D. Merry     U8                      Action;                     /* 0x15 */
288991554f2SKenneth D. Merry     U8                      IstwiStatus;                /* 0x16 */
289991554f2SKenneth D. Merry     U8                      Reserved6;                  /* 0x17 */
290991554f2SKenneth D. Merry     U16                     TxDataCount;                /* 0x18 */
291991554f2SKenneth D. Merry     U16                     RxDataCount;                /* 0x1A */
292991554f2SKenneth D. Merry } MPI2_TOOLBOX_ISTWI_REPLY, MPI2_POINTER PTR_MPI2_TOOLBOX_ISTWI_REPLY,
293991554f2SKenneth D. Merry   Mpi2ToolboxIstwiReply_t, MPI2_POINTER pMpi2ToolboxIstwiReply_t;
294991554f2SKenneth D. Merry 
295991554f2SKenneth D. Merry /****************************************************************************
296991554f2SKenneth D. Merry *  Toolbox Beacon Tool request
297991554f2SKenneth D. Merry ****************************************************************************/
298991554f2SKenneth D. Merry 
299991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_BEACON_REQUEST
300991554f2SKenneth D. Merry {
301991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
302991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
303991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
304991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
305991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
306991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
307991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
308991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
309991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
310991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
311991554f2SKenneth D. Merry     U8                      Reserved5;                  /* 0x0C */
312991554f2SKenneth D. Merry     U8                      PhysicalPort;               /* 0x0D */
313991554f2SKenneth D. Merry     U8                      Reserved6;                  /* 0x0E */
314991554f2SKenneth D. Merry     U8                      Flags;                      /* 0x0F */
315991554f2SKenneth D. Merry } MPI2_TOOLBOX_BEACON_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_BEACON_REQUEST,
316991554f2SKenneth D. Merry   Mpi2ToolboxBeaconRequest_t, MPI2_POINTER pMpi2ToolboxBeaconRequest_t;
317991554f2SKenneth D. Merry 
318991554f2SKenneth D. Merry /* values for the Flags field */
319991554f2SKenneth D. Merry #define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF       (0x00)
320991554f2SKenneth D. Merry #define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON        (0x01)
321991554f2SKenneth D. Merry 
322991554f2SKenneth D. Merry /****************************************************************************
323991554f2SKenneth D. Merry *  Toolbox Diagnostic CLI Tool
324991554f2SKenneth D. Merry ****************************************************************************/
325991554f2SKenneth D. Merry 
326991554f2SKenneth D. Merry #define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH    (0x5C)
327991554f2SKenneth D. Merry 
328991554f2SKenneth D. Merry /* MPI v2.0 Toolbox Diagnostic CLI Tool request message */
329991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
330991554f2SKenneth D. Merry {
331991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
332991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
333991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
334991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
335991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
336991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
337991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
338991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
339991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
340991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
341991554f2SKenneth D. Merry     U8                      SGLFlags;                   /* 0x0C */
342991554f2SKenneth D. Merry     U8                      Reserved5;                  /* 0x0D */
343991554f2SKenneth D. Merry     U16                     Reserved6;                  /* 0x0E */
344991554f2SKenneth D. Merry     U32                     DataLength;                 /* 0x10 */
345991554f2SKenneth D. Merry     U8                      DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
346991554f2SKenneth D. Merry     MPI2_MPI_SGE_IO_UNION   SGL;                        /* 0x70 */
347991554f2SKenneth D. Merry } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
348991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
349991554f2SKenneth D. Merry   Mpi2ToolboxDiagnosticCliRequest_t,
350991554f2SKenneth D. Merry   MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t;
351991554f2SKenneth D. Merry 
352991554f2SKenneth D. Merry /* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
353991554f2SKenneth D. Merry 
354991554f2SKenneth D. Merry /* MPI v2.5 Toolbox Diagnostic CLI Tool request message */
355991554f2SKenneth D. Merry typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST
356991554f2SKenneth D. Merry {
357991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
358991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
359991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
360991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
361991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
362991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
363991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
364991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
365991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
366991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
367991554f2SKenneth D. Merry     U32                     Reserved5;                  /* 0x0C */
368991554f2SKenneth D. Merry     U32                     DataLength;                 /* 0x10 */
369991554f2SKenneth D. Merry     U8                      DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH]; /* 0x14 */
370991554f2SKenneth D. Merry     MPI25_SGE_IO_UNION      SGL;                        /* 0x70 */
371991554f2SKenneth D. Merry } MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
372991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST,
373991554f2SKenneth D. Merry   Mpi25ToolboxDiagnosticCliRequest_t,
374991554f2SKenneth D. Merry   MPI2_POINTER pMpi25ToolboxDiagnosticCliRequest_t;
375991554f2SKenneth D. Merry 
376991554f2SKenneth D. Merry /* Toolbox Diagnostic CLI Tool reply message */
377991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY
378991554f2SKenneth D. Merry {
379991554f2SKenneth D. Merry     U8                      Tool;                       /* 0x00 */
380991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x01 */
381991554f2SKenneth D. Merry     U8                      MsgLength;                  /* 0x02 */
382991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
383991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
384991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
385991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
386991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
387991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
388991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
389991554f2SKenneth D. Merry     U16                     Reserved5;                  /* 0x0C */
390991554f2SKenneth D. Merry     U16                     IOCStatus;                  /* 0x0E */
391991554f2SKenneth D. Merry     U32                     IOCLogInfo;                 /* 0x10 */
392991554f2SKenneth D. Merry     U32                     ReturnedDataLength;         /* 0x14 */
393991554f2SKenneth D. Merry } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY,
394991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY,
395991554f2SKenneth D. Merry   Mpi2ToolboxDiagnosticCliReply_t,
396991554f2SKenneth D. Merry   MPI2_POINTER pMpi2ToolboxDiagnosticCliReply_t;
397991554f2SKenneth D. Merry 
398991554f2SKenneth D. Merry /****************************************************************************
399991554f2SKenneth D. Merry *  Toolbox Console Text Display Tool
400991554f2SKenneth D. Merry ****************************************************************************/
401991554f2SKenneth D. Merry 
402991554f2SKenneth D. Merry /* Toolbox Console Text Display Tool request message */
403991554f2SKenneth D. Merry typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST
404991554f2SKenneth D. Merry {
405991554f2SKenneth D. Merry     U8                      Tool;               /* 0x00 */
406991554f2SKenneth D. Merry     U8                      Reserved1;          /* 0x01 */
407991554f2SKenneth D. Merry     U8                      ChainOffset;        /* 0x02 */
408991554f2SKenneth D. Merry     U8                      Function;           /* 0x03 */
409991554f2SKenneth D. Merry     U16                     Reserved2;          /* 0x04 */
410991554f2SKenneth D. Merry     U8                      Reserved3;          /* 0x06 */
411991554f2SKenneth D. Merry     U8                      MsgFlags;           /* 0x07 */
412991554f2SKenneth D. Merry     U8                      VP_ID;              /* 0x08 */
413991554f2SKenneth D. Merry     U8                      VF_ID;              /* 0x09 */
414991554f2SKenneth D. Merry     U16                     Reserved4;          /* 0x0A */
415991554f2SKenneth D. Merry     U8                      Console;            /* 0x0C */
416991554f2SKenneth D. Merry     U8                      Flags;              /* 0x0D */
417991554f2SKenneth D. Merry     U16                     Reserved6;          /* 0x0E */
418991554f2SKenneth D. Merry     U8                      TextToDisplay[4];   /* 0x10 */ /* actual length determined at runtime based on frame size */
419991554f2SKenneth D. Merry } MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
420991554f2SKenneth D. Merry   MPI2_POINTER PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST,
421991554f2SKenneth D. Merry   Mpi2ToolboxTextDisplayRequest_t,
422991554f2SKenneth D. Merry   MPI2_POINTER pMpi2ToolboxTextDisplayRequest_t;
423991554f2SKenneth D. Merry 
424991554f2SKenneth D. Merry /* defines for the Console field */
425991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_TYPE_MASK          (0xF0)
426991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT       (0x00)
427991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_TYPE_UART          (0x10)
428991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET      (0x20)
429991554f2SKenneth D. Merry 
430991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK        (0x0F)
431991554f2SKenneth D. Merry 
432991554f2SKenneth D. Merry /* defines for the Flags field */
433991554f2SKenneth D. Merry #define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP     (0x01)
434991554f2SKenneth D. Merry 
435*8736c018SKashyap D Desai /****************************************************************************
436*8736c018SKashyap D Desai *  Toolbox Backend Lane Margining Tool
437*8736c018SKashyap D Desai ****************************************************************************/
438*8736c018SKashyap D Desai 
439*8736c018SKashyap D Desai /* Toolbox Backend Lane Margining Tool request message */
440*8736c018SKashyap D Desai typedef struct _MPI26_TOOLBOX_LANE_MARGINING_REQUEST
441*8736c018SKashyap D Desai {
442*8736c018SKashyap D Desai     U8                      Tool;                       /* 0x00 */
443*8736c018SKashyap D Desai     U8                      Reserved1;                  /* 0x01 */
444*8736c018SKashyap D Desai     U8                      ChainOffset;                /* 0x02 */
445*8736c018SKashyap D Desai     U8                      Function;                   /* 0x03 */
446*8736c018SKashyap D Desai     U16                     Reserved2;                  /* 0x04 */
447*8736c018SKashyap D Desai     U8                      Reserved3;                  /* 0x06 */
448*8736c018SKashyap D Desai     U8                      MsgFlags;                   /* 0x07 */
449*8736c018SKashyap D Desai     U8                      VP_ID;                      /* 0x08 */
450*8736c018SKashyap D Desai     U8                      VF_ID;                      /* 0x09 */
451*8736c018SKashyap D Desai     U16                     Reserved4;                  /* 0x0A */
452*8736c018SKashyap D Desai     U8                      Command;                    /* 0x0C */
453*8736c018SKashyap D Desai     U8                      SwitchPort;                 /* 0x0D */
454*8736c018SKashyap D Desai     U16                     DevHandle;                  /* 0x0E */
455*8736c018SKashyap D Desai     U8                      RegisterOffset;             /* 0x10 */
456*8736c018SKashyap D Desai     U8                      Reserved5;                  /* 0x11 */
457*8736c018SKashyap D Desai     U16                     DataLength;                 /* 0x12 */
458*8736c018SKashyap D Desai     MPI2_SGE_SIMPLE_UNION   SGL;                        /* 0x14 */
459*8736c018SKashyap D Desai } MPI26_TOOLBOX_LANE_MARGINING_REQUEST, MPI2_POINTER PTR_MPI2_TOOLBOX_LANE_MARGINING_REQUEST,
460*8736c018SKashyap D Desai   Mpi26ToolboxLaneMarginingRequest_t, MPI2_POINTER pMpi2ToolboxLaneMarginingRequest_t;
461*8736c018SKashyap D Desai 
462*8736c018SKashyap D Desai /* defines for the Command field */
463*8736c018SKashyap D Desai #define MPI26_TOOL_MARGIN_COMMAND_ENTER_MARGIN_MODE        (0x01)
464*8736c018SKashyap D Desai #define MPI26_TOOL_MARGIN_COMMAND_READ_REGISTER_DATA       (0x02)
465*8736c018SKashyap D Desai #define MPI26_TOOL_MARGIN_COMMAND_WRITE_REGISTER_DATA      (0x03)
466*8736c018SKashyap D Desai #define MPI26_TOOL_MARGIN_COMMAND_EXIT_MARGIN_MODE         (0x04)
467*8736c018SKashyap D Desai 
468*8736c018SKashyap D Desai /* Toolbox Backend Lane Margining Tool reply message */
469*8736c018SKashyap D Desai typedef struct _MPI26_TOOLBOX_LANE_MARGINING_REPLY
470*8736c018SKashyap D Desai {
471*8736c018SKashyap D Desai     U8                      Tool;                       /* 0x00 */
472*8736c018SKashyap D Desai     U8                      Reserved1;                  /* 0x01 */
473*8736c018SKashyap D Desai     U8                      MsgLength;                  /* 0x02 */
474*8736c018SKashyap D Desai     U8                      Function;                   /* 0x03 */
475*8736c018SKashyap D Desai     U16                     Reserved2;                  /* 0x04 */
476*8736c018SKashyap D Desai     U8                      Reserved3;                  /* 0x06 */
477*8736c018SKashyap D Desai     U8                      MsgFlags;                   /* 0x07 */
478*8736c018SKashyap D Desai     U8                      VP_ID;                      /* 0x08 */
479*8736c018SKashyap D Desai     U8                      VF_ID;                      /* 0x09 */
480*8736c018SKashyap D Desai     U16                     Reserved4;                  /* 0x0A */
481*8736c018SKashyap D Desai     U16                     Reserved5;                  /* 0x0C */
482*8736c018SKashyap D Desai     U16                     IOCStatus;                  /* 0x0E */
483*8736c018SKashyap D Desai     U32                     IOCLogInfo;                 /* 0x10 */
484*8736c018SKashyap D Desai     U16                     ReturnedDataLength;         /* 0x14 */
485*8736c018SKashyap D Desai     U16                     Reserved6;                  /* 0x16 */
486*8736c018SKashyap D Desai } MPI26_TOOLBOX_LANE_MARGINING_REPLY,
487*8736c018SKashyap D Desai   MPI2_POINTER PTR_MPI26_TOOLBOX_LANE_MARGINING_REPLY,
488*8736c018SKashyap D Desai   Mpi26ToolboxLaneMarginingReply_t,
489*8736c018SKashyap D Desai   MPI2_POINTER pMpi26ToolboxLaneMarginingReply_t;
490*8736c018SKashyap D Desai 
491991554f2SKenneth D. Merry /*****************************************************************************
492991554f2SKenneth D. Merry *
493991554f2SKenneth D. Merry *       Diagnostic Buffer Messages
494991554f2SKenneth D. Merry *
495991554f2SKenneth D. Merry *****************************************************************************/
496991554f2SKenneth D. Merry 
497991554f2SKenneth D. Merry /****************************************************************************
498991554f2SKenneth D. Merry *  Diagnostic Buffer Post request
499991554f2SKenneth D. Merry ****************************************************************************/
500991554f2SKenneth D. Merry 
501991554f2SKenneth D. Merry typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST
502991554f2SKenneth D. Merry {
503991554f2SKenneth D. Merry     U8                      ExtendedType;               /* 0x00 */
504991554f2SKenneth D. Merry     U8                      BufferType;                 /* 0x01 */
505991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
506991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
507991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
508991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
509991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
510991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
511991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
512991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
513991554f2SKenneth D. Merry     U64                     BufferAddress;              /* 0x0C */
514991554f2SKenneth D. Merry     U32                     BufferLength;               /* 0x14 */
515991554f2SKenneth D. Merry     U32                     Reserved5;                  /* 0x18 */
516991554f2SKenneth D. Merry     U32                     Reserved6;                  /* 0x1C */
517991554f2SKenneth D. Merry     U32                     Flags;                      /* 0x20 */
518991554f2SKenneth D. Merry     U32                     ProductSpecific[23];        /* 0x24 */
519991554f2SKenneth D. Merry } MPI2_DIAG_BUFFER_POST_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REQUEST,
520991554f2SKenneth D. Merry   Mpi2DiagBufferPostRequest_t, MPI2_POINTER pMpi2DiagBufferPostRequest_t;
521991554f2SKenneth D. Merry 
522991554f2SKenneth D. Merry /* values for the ExtendedType field */
523991554f2SKenneth D. Merry #define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION         (0x02)
524991554f2SKenneth D. Merry 
525991554f2SKenneth D. Merry /* values for the BufferType field */
526991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_TYPE_TRACE                    (0x00)
527991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_TYPE_SNAPSHOT                 (0x01)
528991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_TYPE_EXTENDED                 (0x02)
529991554f2SKenneth D. Merry /* count of the number of buffer types */
530991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_TYPE_COUNT                    (0x03)
531991554f2SKenneth D. Merry 
532991554f2SKenneth D. Merry /* values for the Flags field */
533991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL          (0x00000002) /* for MPI v2.0 products only */
534991554f2SKenneth D. Merry #define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE        (0x00000001)
535991554f2SKenneth D. Merry 
536991554f2SKenneth D. Merry /****************************************************************************
537991554f2SKenneth D. Merry *  Diagnostic Buffer Post reply
538991554f2SKenneth D. Merry ****************************************************************************/
539991554f2SKenneth D. Merry 
540991554f2SKenneth D. Merry typedef struct _MPI2_DIAG_BUFFER_POST_REPLY
541991554f2SKenneth D. Merry {
542991554f2SKenneth D. Merry     U8                      ExtendedType;               /* 0x00 */
543991554f2SKenneth D. Merry     U8                      BufferType;                 /* 0x01 */
544991554f2SKenneth D. Merry     U8                      MsgLength;                  /* 0x02 */
545991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
546991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
547991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
548991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
549991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
550991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
551991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
552991554f2SKenneth D. Merry     U16                     Reserved5;                  /* 0x0C */
553991554f2SKenneth D. Merry     U16                     IOCStatus;                  /* 0x0E */
554991554f2SKenneth D. Merry     U32                     IOCLogInfo;                 /* 0x10 */
555991554f2SKenneth D. Merry     U32                     TransferLength;             /* 0x14 */
556991554f2SKenneth D. Merry } MPI2_DIAG_BUFFER_POST_REPLY, MPI2_POINTER PTR_MPI2_DIAG_BUFFER_POST_REPLY,
557991554f2SKenneth D. Merry   Mpi2DiagBufferPostReply_t, MPI2_POINTER pMpi2DiagBufferPostReply_t;
558991554f2SKenneth D. Merry 
559991554f2SKenneth D. Merry /****************************************************************************
560991554f2SKenneth D. Merry *  Diagnostic Release request
561991554f2SKenneth D. Merry ****************************************************************************/
562991554f2SKenneth D. Merry 
563991554f2SKenneth D. Merry typedef struct _MPI2_DIAG_RELEASE_REQUEST
564991554f2SKenneth D. Merry {
565991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x00 */
566991554f2SKenneth D. Merry     U8                      BufferType;                 /* 0x01 */
567991554f2SKenneth D. Merry     U8                      ChainOffset;                /* 0x02 */
568991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
569991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
570991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
571991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
572991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
573991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
574991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
575991554f2SKenneth D. Merry } MPI2_DIAG_RELEASE_REQUEST, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REQUEST,
576991554f2SKenneth D. Merry   Mpi2DiagReleaseRequest_t, MPI2_POINTER pMpi2DiagReleaseRequest_t;
577991554f2SKenneth D. Merry 
578991554f2SKenneth D. Merry /****************************************************************************
579991554f2SKenneth D. Merry *  Diagnostic Buffer Post reply
580991554f2SKenneth D. Merry ****************************************************************************/
581991554f2SKenneth D. Merry 
582991554f2SKenneth D. Merry typedef struct _MPI2_DIAG_RELEASE_REPLY
583991554f2SKenneth D. Merry {
584991554f2SKenneth D. Merry     U8                      Reserved1;                  /* 0x00 */
585991554f2SKenneth D. Merry     U8                      BufferType;                 /* 0x01 */
586991554f2SKenneth D. Merry     U8                      MsgLength;                  /* 0x02 */
587991554f2SKenneth D. Merry     U8                      Function;                   /* 0x03 */
588991554f2SKenneth D. Merry     U16                     Reserved2;                  /* 0x04 */
589991554f2SKenneth D. Merry     U8                      Reserved3;                  /* 0x06 */
590991554f2SKenneth D. Merry     U8                      MsgFlags;                   /* 0x07 */
591991554f2SKenneth D. Merry     U8                      VP_ID;                      /* 0x08 */
592991554f2SKenneth D. Merry     U8                      VF_ID;                      /* 0x09 */
593991554f2SKenneth D. Merry     U16                     Reserved4;                  /* 0x0A */
594991554f2SKenneth D. Merry     U16                     Reserved5;                  /* 0x0C */
595991554f2SKenneth D. Merry     U16                     IOCStatus;                  /* 0x0E */
596991554f2SKenneth D. Merry     U32                     IOCLogInfo;                 /* 0x10 */
597991554f2SKenneth D. Merry } MPI2_DIAG_RELEASE_REPLY, MPI2_POINTER PTR_MPI2_DIAG_RELEASE_REPLY,
598991554f2SKenneth D. Merry   Mpi2DiagReleaseReply_t, MPI2_POINTER pMpi2DiagReleaseReply_t;
599991554f2SKenneth D. Merry 
600991554f2SKenneth D. Merry #endif
601