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