The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/mpr/mpi/mpi2_tool.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 9a2a260ee7c7b2111a0b226826235f4e


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.