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