root/drivers/scsi/mpt3sas/mpi/mpi2_tool.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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

/* [<][>][^][v][top][bottom][index][help] */