b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | /* |
| 3 | * Copyright 2000-2020 Broadcom Inc. All rights reserved. |
| 4 | * |
| 5 | * |
| 6 | * Name: mpi2_tool.h |
| 7 | * Title: MPI diagnostic tool structures and definitions |
| 8 | * Creation Date: March 26, 2007 |
| 9 | * |
| 10 | * mpi2_tool.h Version: 02.00.16 |
| 11 | * |
| 12 | * Version History |
| 13 | * --------------- |
| 14 | * |
| 15 | * Date Version Description |
| 16 | * -------- -------- ------------------------------------------------------ |
| 17 | * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A. |
| 18 | * 12-18-07 02.00.01 Added Diagnostic Buffer Post and Diagnostic Release |
| 19 | * structures and defines. |
| 20 | * 02-29-08 02.00.02 Modified various names to make them 32-character unique. |
| 21 | * 05-06-09 02.00.03 Added ISTWI Read Write Tool and Diagnostic CLI Tool. |
| 22 | * 07-30-09 02.00.04 Added ExtendedType field to DiagnosticBufferPost request |
| 23 | * and reply messages. |
| 24 | * Added MPI2_DIAG_BUF_TYPE_EXTENDED. |
| 25 | * Incremented MPI2_DIAG_BUF_TYPE_COUNT. |
| 26 | * 05-12-10 02.00.05 Added Diagnostic Data Upload tool. |
| 27 | * 08-11-10 02.00.06 Added defines that were missing for Diagnostic Buffer |
| 28 | * Post Request. |
| 29 | * 05-25-11 02.00.07 Added Flags field and related defines to |
| 30 | * MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST. |
| 31 | * 11-18-11 02.00.08 Incorporating additions for MPI v2.5. |
| 32 | * 07-10-12 02.00.09 Add MPI v2.5 Toolbox Diagnostic CLI Tool Request |
| 33 | * message. |
| 34 | * 07-26-12 02.00.10 Modified MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST so that |
| 35 | * it uses MPI Chain SGE as well as MPI Simple SGE. |
| 36 | * 08-19-13 02.00.11 Added MPI2_TOOLBOX_TEXT_DISPLAY_TOOL and related info. |
| 37 | * 01-08-14 02.00.12 Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC. |
| 38 | * 11-18-14 02.00.13 Updated copyright information. |
| 39 | * 08-25-16 02.00.14 Added new values for the Flags field of Toolbox Clean |
| 40 | * Tool Request Message. |
| 41 | * 07-22-18 02.00.15 Added defines for new TOOLBOX_PCIE_LANE_MARGINING tool. |
| 42 | * Added option for DeviceInfo field in ISTWI tool. |
| 43 | * 12-17-18 02.00.16 Shorten some defines to be compatible with DOS. |
| 44 | * -------------------------------------------------------------------------- |
| 45 | */ |
| 46 | |
| 47 | #ifndef MPI2_TOOL_H |
| 48 | #define MPI2_TOOL_H |
| 49 | |
| 50 | /***************************************************************************** |
| 51 | * |
| 52 | * Toolbox Messages |
| 53 | * |
| 54 | *****************************************************************************/ |
| 55 | |
| 56 | /*defines for the Tools */ |
| 57 | #define MPI2_TOOLBOX_CLEAN_TOOL (0x00) |
| 58 | #define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01) |
| 59 | #define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02) |
| 60 | #define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) |
| 61 | #define MPI2_TOOLBOX_BEACON_TOOL (0x05) |
| 62 | #define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06) |
| 63 | #define MPI2_TOOLBOX_TEXT_DISPLAY_TOOL (0x07) |
| 64 | #define MPI26_TOOLBOX_BACKEND_PCIE_LANE_MARGIN (0x08) |
| 65 | |
| 66 | /**************************************************************************** |
| 67 | * Toolbox reply |
| 68 | ****************************************************************************/ |
| 69 | |
| 70 | typedef struct _MPI2_TOOLBOX_REPLY { |
| 71 | U8 Tool; /*0x00 */ |
| 72 | U8 Reserved1; /*0x01 */ |
| 73 | U8 MsgLength; /*0x02 */ |
| 74 | U8 Function; /*0x03 */ |
| 75 | U16 Reserved2; /*0x04 */ |
| 76 | U8 Reserved3; /*0x06 */ |
| 77 | U8 MsgFlags; /*0x07 */ |
| 78 | U8 VP_ID; /*0x08 */ |
| 79 | U8 VF_ID; /*0x09 */ |
| 80 | U16 Reserved4; /*0x0A */ |
| 81 | U16 Reserved5; /*0x0C */ |
| 82 | U16 IOCStatus; /*0x0E */ |
| 83 | U32 IOCLogInfo; /*0x10 */ |
| 84 | } MPI2_TOOLBOX_REPLY, *PTR_MPI2_TOOLBOX_REPLY, |
| 85 | Mpi2ToolboxReply_t, *pMpi2ToolboxReply_t; |
| 86 | |
| 87 | /**************************************************************************** |
| 88 | * Toolbox Clean Tool request |
| 89 | ****************************************************************************/ |
| 90 | |
| 91 | typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST { |
| 92 | U8 Tool; /*0x00 */ |
| 93 | U8 Reserved1; /*0x01 */ |
| 94 | U8 ChainOffset; /*0x02 */ |
| 95 | U8 Function; /*0x03 */ |
| 96 | U16 Reserved2; /*0x04 */ |
| 97 | U8 Reserved3; /*0x06 */ |
| 98 | U8 MsgFlags; /*0x07 */ |
| 99 | U8 VP_ID; /*0x08 */ |
| 100 | U8 VF_ID; /*0x09 */ |
| 101 | U16 Reserved4; /*0x0A */ |
| 102 | U32 Flags; /*0x0C */ |
| 103 | } MPI2_TOOLBOX_CLEAN_REQUEST, *PTR_MPI2_TOOLBOX_CLEAN_REQUEST, |
| 104 | Mpi2ToolboxCleanRequest_t, *pMpi2ToolboxCleanRequest_t; |
| 105 | |
| 106 | /*values for the Flags field */ |
| 107 | #define MPI2_TOOLBOX_CLEAN_BOOT_SERVICES (0x80000000) |
| 108 | #define MPI2_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES (0x40000000) |
| 109 | #define MPI2_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES (0x20000000) |
| 110 | #define MPI2_TOOLBOX_CLEAN_FW_CURRENT (0x10000000) |
| 111 | #define MPI2_TOOLBOX_CLEAN_FW_BACKUP (0x08000000) |
| 112 | #define MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC (0x04000000) |
| 113 | #define MPI2_TOOLBOX_CLEAN_MEGARAID (0x02000000) |
| 114 | #define MPI2_TOOLBOX_CLEAN_INITIALIZATION (0x01000000) |
| 115 | #define MPI2_TOOLBOX_CLEAN_SBR (0x00800000) |
| 116 | #define MPI2_TOOLBOX_CLEAN_SBR_BACKUP (0x00400000) |
| 117 | #define MPI2_TOOLBOX_CLEAN_HIIM (0x00200000) |
| 118 | #define MPI2_TOOLBOX_CLEAN_HIIA (0x00100000) |
| 119 | #define MPI2_TOOLBOX_CLEAN_CTLR (0x00080000) |
| 120 | #define MPI2_TOOLBOX_CLEAN_IMR_FIRMWARE (0x00040000) |
| 121 | #define MPI2_TOOLBOX_CLEAN_MR_NVDATA (0x00020000) |
| 122 | #define MPI2_TOOLBOX_CLEAN_RESERVED_5_16 (0x0001FFE0) |
| 123 | #define MPI2_TOOLBOX_CLEAN_ALL_BUT_MPB (0x00000010) |
| 124 | #define MPI2_TOOLBOX_CLEAN_ENTIRE_FLASH (0x00000008) |
| 125 | #define MPI2_TOOLBOX_CLEAN_FLASH (0x00000004) |
| 126 | #define MPI2_TOOLBOX_CLEAN_SEEPROM (0x00000002) |
| 127 | #define MPI2_TOOLBOX_CLEAN_NVSRAM (0x00000001) |
| 128 | |
| 129 | /**************************************************************************** |
| 130 | * Toolbox Memory Move request |
| 131 | ****************************************************************************/ |
| 132 | |
| 133 | typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST { |
| 134 | U8 Tool; /*0x00 */ |
| 135 | U8 Reserved1; /*0x01 */ |
| 136 | U8 ChainOffset; /*0x02 */ |
| 137 | U8 Function; /*0x03 */ |
| 138 | U16 Reserved2; /*0x04 */ |
| 139 | U8 Reserved3; /*0x06 */ |
| 140 | U8 MsgFlags; /*0x07 */ |
| 141 | U8 VP_ID; /*0x08 */ |
| 142 | U8 VF_ID; /*0x09 */ |
| 143 | U16 Reserved4; /*0x0A */ |
| 144 | MPI2_SGE_SIMPLE_UNION SGL; /*0x0C */ |
| 145 | } MPI2_TOOLBOX_MEM_MOVE_REQUEST, *PTR_MPI2_TOOLBOX_MEM_MOVE_REQUEST, |
| 146 | Mpi2ToolboxMemMoveRequest_t, *pMpi2ToolboxMemMoveRequest_t; |
| 147 | |
| 148 | /**************************************************************************** |
| 149 | * Toolbox Diagnostic Data Upload request |
| 150 | ****************************************************************************/ |
| 151 | |
| 152 | typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST { |
| 153 | U8 Tool; /*0x00 */ |
| 154 | U8 Reserved1; /*0x01 */ |
| 155 | U8 ChainOffset; /*0x02 */ |
| 156 | U8 Function; /*0x03 */ |
| 157 | U16 Reserved2; /*0x04 */ |
| 158 | U8 Reserved3; /*0x06 */ |
| 159 | U8 MsgFlags; /*0x07 */ |
| 160 | U8 VP_ID; /*0x08 */ |
| 161 | U8 VF_ID; /*0x09 */ |
| 162 | U16 Reserved4; /*0x0A */ |
| 163 | U8 SGLFlags; /*0x0C */ |
| 164 | U8 Reserved5; /*0x0D */ |
| 165 | U16 Reserved6; /*0x0E */ |
| 166 | U32 Flags; /*0x10 */ |
| 167 | U32 DataLength; /*0x14 */ |
| 168 | MPI2_SGE_SIMPLE_UNION SGL; /*0x18 */ |
| 169 | } MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, |
| 170 | *PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, |
| 171 | Mpi2ToolboxDiagDataUploadRequest_t, |
| 172 | *pMpi2ToolboxDiagDataUploadRequest_t; |
| 173 | |
| 174 | /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ |
| 175 | |
| 176 | typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER { |
| 177 | U32 DiagDataLength; /*00h */ |
| 178 | U8 FormatCode; /*04h */ |
| 179 | U8 Reserved1; /*05h */ |
| 180 | U16 Reserved2; /*06h */ |
| 181 | } MPI2_DIAG_DATA_UPLOAD_HEADER, *PTR_MPI2_DIAG_DATA_UPLOAD_HEADER, |
| 182 | Mpi2DiagDataUploadHeader_t, *pMpi2DiagDataUploadHeader_t; |
| 183 | |
| 184 | /**************************************************************************** |
| 185 | * Toolbox ISTWI Read Write Tool |
| 186 | ****************************************************************************/ |
| 187 | |
| 188 | /*Toolbox ISTWI Read Write Tool request message */ |
| 189 | typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST { |
| 190 | U8 Tool; /*0x00 */ |
| 191 | U8 Reserved1; /*0x01 */ |
| 192 | U8 ChainOffset; /*0x02 */ |
| 193 | U8 Function; /*0x03 */ |
| 194 | U16 Reserved2; /*0x04 */ |
| 195 | U8 Reserved3; /*0x06 */ |
| 196 | U8 MsgFlags; /*0x07 */ |
| 197 | U8 VP_ID; /*0x08 */ |
| 198 | U8 VF_ID; /*0x09 */ |
| 199 | U16 Reserved4; /*0x0A */ |
| 200 | U32 Reserved5; /*0x0C */ |
| 201 | U32 Reserved6; /*0x10 */ |
| 202 | U8 DevIndex; /*0x14 */ |
| 203 | U8 Action; /*0x15 */ |
| 204 | U8 SGLFlags; /*0x16 */ |
| 205 | U8 Flags; /*0x17 */ |
| 206 | U16 TxDataLength; /*0x18 */ |
| 207 | U16 RxDataLength; /*0x1A */ |
| 208 | U32 Reserved8; /*0x1C */ |
| 209 | U32 Reserved9; /*0x20 */ |
| 210 | U32 Reserved10; /*0x24 */ |
| 211 | U32 Reserved11; /*0x28 */ |
| 212 | U32 Reserved12; /*0x2C */ |
| 213 | MPI2_SGE_SIMPLE_UNION SGL; /*0x30 */ |
| 214 | } MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, |
| 215 | *PTR_MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST, |
| 216 | Mpi2ToolboxIstwiReadWriteRequest_t, |
| 217 | *pMpi2ToolboxIstwiReadWriteRequest_t; |
| 218 | |
| 219 | /*values for the Action field */ |
| 220 | #define MPI2_TOOL_ISTWI_ACTION_READ_DATA (0x01) |
| 221 | #define MPI2_TOOL_ISTWI_ACTION_WRITE_DATA (0x02) |
| 222 | #define MPI2_TOOL_ISTWI_ACTION_SEQUENCE (0x03) |
| 223 | #define MPI2_TOOL_ISTWI_ACTION_RESERVE_BUS (0x10) |
| 224 | #define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11) |
| 225 | #define MPI2_TOOL_ISTWI_ACTION_RESET (0x12) |
| 226 | |
| 227 | /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ |
| 228 | |
| 229 | /*values for the Flags field */ |
| 230 | #define MPI2_TOOL_ISTWI_FLAG_AUTO_RESERVE_RELEASE (0x80) |
| 231 | #define MPI2_TOOL_ISTWI_FLAG_PAGE_ADDR_MASK (0x07) |
| 232 | |
| 233 | /*MPI26 TOOLBOX Request MsgFlags defines */ |
| 234 | #define MPI26_TOOL_ISTWI_MSGFLG_ADDR_MASK (0x01) |
| 235 | /*Request uses Man Page 43 device index addressing */ |
| 236 | #define MPI26_TOOL_ISTWI_MSGFLG_ADDR_INDEX (0x00) |
| 237 | /*Request uses Man Page 43 device info struct addressing */ |
| 238 | #define MPI26_TOOL_ISTWI_MSGFLG_ADDR_INFO (0x01) |
| 239 | |
| 240 | /*Toolbox ISTWI Read Write Tool reply message */ |
| 241 | typedef struct _MPI2_TOOLBOX_ISTWI_REPLY { |
| 242 | U8 Tool; /*0x00 */ |
| 243 | U8 Reserved1; /*0x01 */ |
| 244 | U8 MsgLength; /*0x02 */ |
| 245 | U8 Function; /*0x03 */ |
| 246 | U16 Reserved2; /*0x04 */ |
| 247 | U8 Reserved3; /*0x06 */ |
| 248 | U8 MsgFlags; /*0x07 */ |
| 249 | U8 VP_ID; /*0x08 */ |
| 250 | U8 VF_ID; /*0x09 */ |
| 251 | U16 Reserved4; /*0x0A */ |
| 252 | U16 Reserved5; /*0x0C */ |
| 253 | U16 IOCStatus; /*0x0E */ |
| 254 | U32 IOCLogInfo; /*0x10 */ |
| 255 | U8 DevIndex; /*0x14 */ |
| 256 | U8 Action; /*0x15 */ |
| 257 | U8 IstwiStatus; /*0x16 */ |
| 258 | U8 Reserved6; /*0x17 */ |
| 259 | U16 TxDataCount; /*0x18 */ |
| 260 | U16 RxDataCount; /*0x1A */ |
| 261 | } MPI2_TOOLBOX_ISTWI_REPLY, *PTR_MPI2_TOOLBOX_ISTWI_REPLY, |
| 262 | Mpi2ToolboxIstwiReply_t, *pMpi2ToolboxIstwiReply_t; |
| 263 | |
| 264 | /**************************************************************************** |
| 265 | * Toolbox Beacon Tool request |
| 266 | ****************************************************************************/ |
| 267 | |
| 268 | typedef struct _MPI2_TOOLBOX_BEACON_REQUEST { |
| 269 | U8 Tool; /*0x00 */ |
| 270 | U8 Reserved1; /*0x01 */ |
| 271 | U8 ChainOffset; /*0x02 */ |
| 272 | U8 Function; /*0x03 */ |
| 273 | U16 Reserved2; /*0x04 */ |
| 274 | U8 Reserved3; /*0x06 */ |
| 275 | U8 MsgFlags; /*0x07 */ |
| 276 | U8 VP_ID; /*0x08 */ |
| 277 | U8 VF_ID; /*0x09 */ |
| 278 | U16 Reserved4; /*0x0A */ |
| 279 | U8 Reserved5; /*0x0C */ |
| 280 | U8 PhysicalPort; /*0x0D */ |
| 281 | U8 Reserved6; /*0x0E */ |
| 282 | U8 Flags; /*0x0F */ |
| 283 | } MPI2_TOOLBOX_BEACON_REQUEST, *PTR_MPI2_TOOLBOX_BEACON_REQUEST, |
| 284 | Mpi2ToolboxBeaconRequest_t, *pMpi2ToolboxBeaconRequest_t; |
| 285 | |
| 286 | /*values for the Flags field */ |
| 287 | #define MPI2_TOOLBOX_FLAGS_BEACONMODE_OFF (0x00) |
| 288 | #define MPI2_TOOLBOX_FLAGS_BEACONMODE_ON (0x01) |
| 289 | |
| 290 | /**************************************************************************** |
| 291 | * Toolbox Diagnostic CLI Tool |
| 292 | ****************************************************************************/ |
| 293 | |
| 294 | #define MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH (0x5C) |
| 295 | |
| 296 | /*MPI v2.0 Toolbox Diagnostic CLI Tool request message */ |
| 297 | typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { |
| 298 | U8 Tool; /*0x00 */ |
| 299 | U8 Reserved1; /*0x01 */ |
| 300 | U8 ChainOffset; /*0x02 */ |
| 301 | U8 Function; /*0x03 */ |
| 302 | U16 Reserved2; /*0x04 */ |
| 303 | U8 Reserved3; /*0x06 */ |
| 304 | U8 MsgFlags; /*0x07 */ |
| 305 | U8 VP_ID; /*0x08 */ |
| 306 | U8 VF_ID; /*0x09 */ |
| 307 | U16 Reserved4; /*0x0A */ |
| 308 | U8 SGLFlags; /*0x0C */ |
| 309 | U8 Reserved5; /*0x0D */ |
| 310 | U16 Reserved6; /*0x0E */ |
| 311 | U32 DataLength; /*0x10 */ |
| 312 | U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ |
| 313 | MPI2_MPI_SGE_IO_UNION SGL; /*0x70 */ |
| 314 | } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, |
| 315 | *PTR_MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, |
| 316 | Mpi2ToolboxDiagnosticCliRequest_t, |
| 317 | *pMpi2ToolboxDiagnosticCliRequest_t; |
| 318 | |
| 319 | /*use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */ |
| 320 | |
| 321 | /*MPI v2.5 Toolbox Diagnostic CLI Tool request message */ |
| 322 | typedef struct _MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST { |
| 323 | U8 Tool; /*0x00 */ |
| 324 | U8 Reserved1; /*0x01 */ |
| 325 | U8 ChainOffset; /*0x02 */ |
| 326 | U8 Function; /*0x03 */ |
| 327 | U16 Reserved2; /*0x04 */ |
| 328 | U8 Reserved3; /*0x06 */ |
| 329 | U8 MsgFlags; /*0x07 */ |
| 330 | U8 VP_ID; /*0x08 */ |
| 331 | U8 VF_ID; /*0x09 */ |
| 332 | U16 Reserved4; /*0x0A */ |
| 333 | U32 Reserved5; /*0x0C */ |
| 334 | U32 DataLength; /*0x10 */ |
| 335 | U8 DiagnosticCliCommand[MPI2_TOOLBOX_DIAG_CLI_CMD_LENGTH];/*0x14 */ |
| 336 | MPI25_SGE_IO_UNION SGL; /* 0x70 */ |
| 337 | } MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, |
| 338 | *PTR_MPI25_TOOLBOX_DIAGNOSTIC_CLI_REQUEST, |
| 339 | Mpi25ToolboxDiagnosticCliRequest_t, |
| 340 | *pMpi25ToolboxDiagnosticCliRequest_t; |
| 341 | |
| 342 | /*Toolbox Diagnostic CLI Tool reply message */ |
| 343 | typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY { |
| 344 | U8 Tool; /*0x00 */ |
| 345 | U8 Reserved1; /*0x01 */ |
| 346 | U8 MsgLength; /*0x02 */ |
| 347 | U8 Function; /*0x03 */ |
| 348 | U16 Reserved2; /*0x04 */ |
| 349 | U8 Reserved3; /*0x06 */ |
| 350 | U8 MsgFlags; /*0x07 */ |
| 351 | U8 VP_ID; /*0x08 */ |
| 352 | U8 VF_ID; /*0x09 */ |
| 353 | U16 Reserved4; /*0x0A */ |
| 354 | U16 Reserved5; /*0x0C */ |
| 355 | U16 IOCStatus; /*0x0E */ |
| 356 | U32 IOCLogInfo; /*0x10 */ |
| 357 | U32 ReturnedDataLength; /*0x14 */ |
| 358 | } MPI2_TOOLBOX_DIAGNOSTIC_CLI_REPLY, |
| 359 | *PTR_MPI2_TOOLBOX_DIAG_CLI_REPLY, |
| 360 | Mpi2ToolboxDiagnosticCliReply_t, |
| 361 | *pMpi2ToolboxDiagnosticCliReply_t; |
| 362 | |
| 363 | |
| 364 | /**************************************************************************** |
| 365 | * Toolbox Console Text Display Tool |
| 366 | ****************************************************************************/ |
| 367 | |
| 368 | /* Toolbox Console Text Display Tool request message */ |
| 369 | typedef struct _MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST { |
| 370 | U8 Tool; /* 0x00 */ |
| 371 | U8 Reserved1; /* 0x01 */ |
| 372 | U8 ChainOffset; /* 0x02 */ |
| 373 | U8 Function; /* 0x03 */ |
| 374 | U16 Reserved2; /* 0x04 */ |
| 375 | U8 Reserved3; /* 0x06 */ |
| 376 | U8 MsgFlags; /* 0x07 */ |
| 377 | U8 VP_ID; /* 0x08 */ |
| 378 | U8 VF_ID; /* 0x09 */ |
| 379 | U16 Reserved4; /* 0x0A */ |
| 380 | U8 Console; /* 0x0C */ |
| 381 | U8 Flags; /* 0x0D */ |
| 382 | U16 Reserved6; /* 0x0E */ |
| 383 | U8 TextToDisplay[4]; /* 0x10 */ |
| 384 | } MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, |
| 385 | *PTR_MPI2_TOOLBOX_TEXT_DISPLAY_REQUEST, |
| 386 | Mpi2ToolboxTextDisplayRequest_t, |
| 387 | *pMpi2ToolboxTextDisplayRequest_t; |
| 388 | |
| 389 | /* defines for the Console field */ |
| 390 | #define MPI2_TOOLBOX_CONSOLE_TYPE_MASK (0xF0) |
| 391 | #define MPI2_TOOLBOX_CONSOLE_TYPE_DEFAULT (0x00) |
| 392 | #define MPI2_TOOLBOX_CONSOLE_TYPE_UART (0x10) |
| 393 | #define MPI2_TOOLBOX_CONSOLE_TYPE_ETHERNET (0x20) |
| 394 | |
| 395 | #define MPI2_TOOLBOX_CONSOLE_NUMBER_MASK (0x0F) |
| 396 | |
| 397 | /* defines for the Flags field */ |
| 398 | #define MPI2_TOOLBOX_CONSOLE_FLAG_TIMESTAMP (0x01) |
| 399 | |
| 400 | |
| 401 | /*************************************************************************** |
| 402 | * Toolbox Backend Lane Margining Tool |
| 403 | *************************************************************************** |
| 404 | */ |
| 405 | |
| 406 | /*Toolbox Backend Lane Margining Tool request message */ |
| 407 | typedef struct _MPI26_TOOLBOX_LANE_MARGIN_REQUEST { |
| 408 | U8 Tool; /*0x00 */ |
| 409 | U8 Reserved1; /*0x01 */ |
| 410 | U8 ChainOffset; /*0x02 */ |
| 411 | U8 Function; /*0x03 */ |
| 412 | U16 Reserved2; /*0x04 */ |
| 413 | U8 Reserved3; /*0x06 */ |
| 414 | U8 MsgFlags; /*0x07 */ |
| 415 | U8 VP_ID; /*0x08 */ |
| 416 | U8 VF_ID; /*0x09 */ |
| 417 | U16 Reserved4; /*0x0A */ |
| 418 | U8 Command; /*0x0C */ |
| 419 | U8 SwitchPort; /*0x0D */ |
| 420 | U16 DevHandle; /*0x0E */ |
| 421 | U8 RegisterOffset; /*0x10 */ |
| 422 | U8 Reserved5; /*0x11 */ |
| 423 | U16 DataLength; /*0x12 */ |
| 424 | MPI25_SGE_IO_UNION SGL; /*0x14 */ |
| 425 | } MPI26_TOOLBOX_LANE_MARGINING_REQUEST, |
| 426 | *PTR_MPI2_TOOLBOX_LANE_MARGINING_REQUEST, |
| 427 | Mpi26ToolboxLaneMarginingRequest_t, |
| 428 | *pMpi2ToolboxLaneMarginingRequest_t; |
| 429 | |
| 430 | /* defines for the Command field */ |
| 431 | #define MPI26_TOOL_MARGIN_COMMAND_ENTER_MARGIN_MODE (0x01) |
| 432 | #define MPI26_TOOL_MARGIN_COMMAND_READ_REGISTER_DATA (0x02) |
| 433 | #define MPI26_TOOL_MARGIN_COMMAND_WRITE_REGISTER_DATA (0x03) |
| 434 | #define MPI26_TOOL_MARGIN_COMMAND_EXIT_MARGIN_MODE (0x04) |
| 435 | |
| 436 | |
| 437 | /*Toolbox Backend Lane Margining Tool reply message */ |
| 438 | typedef struct _MPI26_TOOLBOX_LANE_MARGIN_REPLY { |
| 439 | U8 Tool; /*0x00 */ |
| 440 | U8 Reserved1; /*0x01 */ |
| 441 | U8 MsgLength; /*0x02 */ |
| 442 | U8 Function; /*0x03 */ |
| 443 | U16 Reserved2; /*0x04 */ |
| 444 | U8 Reserved3; /*0x06 */ |
| 445 | U8 MsgFlags; /*0x07 */ |
| 446 | U8 VP_ID; /*0x08 */ |
| 447 | U8 VF_ID; /*0x09 */ |
| 448 | U16 Reserved4; /*0x0A */ |
| 449 | U16 Reserved5; /*0x0C */ |
| 450 | U16 IOCStatus; /*0x0E */ |
| 451 | U32 IOCLogInfo; /*0x10 */ |
| 452 | U16 ReturnedDataLength; /*0x14 */ |
| 453 | U16 Reserved6; /*0x16 */ |
| 454 | } MPI26_TOOLBOX_LANE_MARGINING_REPLY, |
| 455 | *PTR_MPI26_TOOLBOX_LANE_MARGINING_REPLY, |
| 456 | Mpi26ToolboxLaneMarginingReply_t, |
| 457 | *pMpi26ToolboxLaneMarginingReply_t; |
| 458 | |
| 459 | |
| 460 | /***************************************************************************** |
| 461 | * |
| 462 | * Diagnostic Buffer Messages |
| 463 | * |
| 464 | *****************************************************************************/ |
| 465 | |
| 466 | /**************************************************************************** |
| 467 | * Diagnostic Buffer Post request |
| 468 | ****************************************************************************/ |
| 469 | |
| 470 | typedef struct _MPI2_DIAG_BUFFER_POST_REQUEST { |
| 471 | U8 ExtendedType; /*0x00 */ |
| 472 | U8 BufferType; /*0x01 */ |
| 473 | U8 ChainOffset; /*0x02 */ |
| 474 | U8 Function; /*0x03 */ |
| 475 | U16 Reserved2; /*0x04 */ |
| 476 | U8 Reserved3; /*0x06 */ |
| 477 | U8 MsgFlags; /*0x07 */ |
| 478 | U8 VP_ID; /*0x08 */ |
| 479 | U8 VF_ID; /*0x09 */ |
| 480 | U16 Reserved4; /*0x0A */ |
| 481 | U64 BufferAddress; /*0x0C */ |
| 482 | U32 BufferLength; /*0x14 */ |
| 483 | U32 Reserved5; /*0x18 */ |
| 484 | U32 Reserved6; /*0x1C */ |
| 485 | U32 Flags; /*0x20 */ |
| 486 | U32 ProductSpecific[23]; /*0x24 */ |
| 487 | } MPI2_DIAG_BUFFER_POST_REQUEST, *PTR_MPI2_DIAG_BUFFER_POST_REQUEST, |
| 488 | Mpi2DiagBufferPostRequest_t, *pMpi2DiagBufferPostRequest_t; |
| 489 | |
| 490 | /*values for the ExtendedType field */ |
| 491 | #define MPI2_DIAG_EXTENDED_TYPE_UTILIZATION (0x02) |
| 492 | |
| 493 | /*values for the BufferType field */ |
| 494 | #define MPI2_DIAG_BUF_TYPE_TRACE (0x00) |
| 495 | #define MPI2_DIAG_BUF_TYPE_SNAPSHOT (0x01) |
| 496 | #define MPI2_DIAG_BUF_TYPE_EXTENDED (0x02) |
| 497 | /*count of the number of buffer types */ |
| 498 | #define MPI2_DIAG_BUF_TYPE_COUNT (0x03) |
| 499 | |
| 500 | /*values for the Flags field */ |
| 501 | #define MPI2_DIAG_BUF_FLAG_RELEASE_ON_FULL (0x00000002) |
| 502 | #define MPI2_DIAG_BUF_FLAG_IMMEDIATE_RELEASE (0x00000001) |
| 503 | |
| 504 | /**************************************************************************** |
| 505 | * Diagnostic Buffer Post reply |
| 506 | ****************************************************************************/ |
| 507 | |
| 508 | typedef struct _MPI2_DIAG_BUFFER_POST_REPLY { |
| 509 | U8 ExtendedType; /*0x00 */ |
| 510 | U8 BufferType; /*0x01 */ |
| 511 | U8 MsgLength; /*0x02 */ |
| 512 | U8 Function; /*0x03 */ |
| 513 | U16 Reserved2; /*0x04 */ |
| 514 | U8 Reserved3; /*0x06 */ |
| 515 | U8 MsgFlags; /*0x07 */ |
| 516 | U8 VP_ID; /*0x08 */ |
| 517 | U8 VF_ID; /*0x09 */ |
| 518 | U16 Reserved4; /*0x0A */ |
| 519 | U16 Reserved5; /*0x0C */ |
| 520 | U16 IOCStatus; /*0x0E */ |
| 521 | U32 IOCLogInfo; /*0x10 */ |
| 522 | U32 TransferLength; /*0x14 */ |
| 523 | } MPI2_DIAG_BUFFER_POST_REPLY, *PTR_MPI2_DIAG_BUFFER_POST_REPLY, |
| 524 | Mpi2DiagBufferPostReply_t, *pMpi2DiagBufferPostReply_t; |
| 525 | |
| 526 | /**************************************************************************** |
| 527 | * Diagnostic Release request |
| 528 | ****************************************************************************/ |
| 529 | |
| 530 | typedef struct _MPI2_DIAG_RELEASE_REQUEST { |
| 531 | U8 Reserved1; /*0x00 */ |
| 532 | U8 BufferType; /*0x01 */ |
| 533 | U8 ChainOffset; /*0x02 */ |
| 534 | U8 Function; /*0x03 */ |
| 535 | U16 Reserved2; /*0x04 */ |
| 536 | U8 Reserved3; /*0x06 */ |
| 537 | U8 MsgFlags; /*0x07 */ |
| 538 | U8 VP_ID; /*0x08 */ |
| 539 | U8 VF_ID; /*0x09 */ |
| 540 | U16 Reserved4; /*0x0A */ |
| 541 | } MPI2_DIAG_RELEASE_REQUEST, *PTR_MPI2_DIAG_RELEASE_REQUEST, |
| 542 | Mpi2DiagReleaseRequest_t, *pMpi2DiagReleaseRequest_t; |
| 543 | |
| 544 | /**************************************************************************** |
| 545 | * Diagnostic Buffer Post reply |
| 546 | ****************************************************************************/ |
| 547 | |
| 548 | typedef struct _MPI2_DIAG_RELEASE_REPLY { |
| 549 | U8 Reserved1; /*0x00 */ |
| 550 | U8 BufferType; /*0x01 */ |
| 551 | U8 MsgLength; /*0x02 */ |
| 552 | U8 Function; /*0x03 */ |
| 553 | U16 Reserved2; /*0x04 */ |
| 554 | U8 Reserved3; /*0x06 */ |
| 555 | U8 MsgFlags; /*0x07 */ |
| 556 | U8 VP_ID; /*0x08 */ |
| 557 | U8 VF_ID; /*0x09 */ |
| 558 | U16 Reserved4; /*0x0A */ |
| 559 | U16 Reserved5; /*0x0C */ |
| 560 | U16 IOCStatus; /*0x0E */ |
| 561 | U32 IOCLogInfo; /*0x10 */ |
| 562 | } MPI2_DIAG_RELEASE_REPLY, *PTR_MPI2_DIAG_RELEASE_REPLY, |
| 563 | Mpi2DiagReleaseReply_t, *pMpi2DiagReleaseReply_t; |
| 564 | |
| 565 | #endif |