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