11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
2fd7a253311412b3fc7c85586552c90eca61e7d23Kashyap, Desai *  Copyright (c) 2001-2008 LSI Corporation.
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *           Name:  mpi_tool.h
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *          Title:  MPI Toolbox structures and definitions
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Creation Date:  July 30, 2001
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
9c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *    mpi_tool.h Version:  01.05.03
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Version History
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  ---------------
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Date      Version   Description
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  --------  --------  ------------------------------------------------------
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  08-08-01  01.02.01  Original release.
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  08-29-01  01.02.02  Added DIAG_DATA_UPLOAD_HEADER and related defines.
18c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  01-16-04  01.02.03  Added defines and structures for new tools
19c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *.                     MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL and
20c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *                      MPI_TOOLBOX_FC_MANAGEMENT_TOOL.
21c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  04-29-04  01.02.04  Added message structures for Diagnostic Buffer Post and
22c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *                      Diagnostic Release requests and replies.
23c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  05-11-04  01.03.01  Original release for MPI v1.3.
24c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  08-19-04  01.05.01  Original release for MPI v1.5.
25c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  10-06-04  01.05.02  Added define for MPI_DIAG_BUF_TYPE_COUNT.
26c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *  02-09-05  01.05.03  Added frame size option to FC management tool.
27c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean *                      Added Beacon tool to the Toolbox.
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  --------------------------------------------------------------------------
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_TOOL_H
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOL_H
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_TOOL                      (0x00)
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_MEMORY_MOVE_TOOL                (0x01)
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_DIAG_DATA_UPLOAD_TOOL           (0x02)
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL           (0x03)
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_FC_MANAGEMENT_TOOL              (0x04)
39c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_TOOLBOX_BEACON_TOOL                     (0x05)
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox reply                                                            */
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_REPLY
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Tool;                       /* 00h */
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 01h */
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgLength;                  /* 02h */
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved3;                  /* 0Ch */
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     IOCStatus;                  /* 0Eh */
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     IOCLogInfo;                 /* 10h */
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_REPLY, MPI_POINTER PTR_MSG_TOOLBOX_REPLY,
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxReply_t, MPI_POINTER pToolboxReply_t;
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox Clean Tool request                                               */
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_CLEAN_REQUEST
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Tool;                       /* 00h */
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 01h */
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     Flags;                      /* 0Ch */
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_CLEAN_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_CLEAN_REQUEST,
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxCleanRequest_t, MPI_POINTER pToolboxCleanRequest_t;
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_NVSRAM                    (0x00000001)
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_SEEPROM                   (0x00000002)
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_FLASH                     (0x00000004)
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_BOOTLOADER                (0x04000000)
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_FW_BACKUP                 (0x08000000)
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_FW_CURRENT                (0x10000000)
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_OTHER_PERSIST_PAGES       (0x20000000)
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_PERSIST_MANUFACT_PAGES    (0x40000000)
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TOOLBOX_CLEAN_BOOT_SERVICES             (0x80000000)
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox Memory Move request                                              */
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_MEM_MOVE_REQUEST
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Tool;                       /* 00h */
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 01h */
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    SGE_SIMPLE_UNION        SGL;                        /* 0Ch */
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_MEM_MOVE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_MEM_MOVE_REQUEST,
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxMemMoveRequest_t, MPI_POINTER pToolboxMemMoveRequest_t;
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox Diagnostic Data Upload request                                   */
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST
1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Tool;                       /* 00h */
1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 01h */
1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     Flags;                      /* 0Ch */
1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     Reserved3;                  /* 10h */
1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    SGE_SIMPLE_UNION        SGL;                        /* 14h */
1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxDiagDataUploadRequest_t, MPI_POINTER pToolboxDiagDataUploadRequest_t;
1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _DIAG_DATA_UPLOAD_HEADER
1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     DiagDataLength;             /* 00h */
1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      FormatCode;                 /* 04h */
1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 05h */
1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 06h */
1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} DIAG_DATA_UPLOAD_HEADER, MPI_POINTER PTR_DIAG_DATA_UPLOAD_HEADER,
1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  DiagDataUploadHeader_t, MPI_POINTER pDiagDataUploadHeader_t;
1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_DIAG_FORMAT_SCSI_PRINTF_1            (0x01)
1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_DIAG_FORMAT_SCSI_2                   (0x02)
1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_DIAG_FORMAT_SCSI_3                   (0x03)
1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_DIAG_FORMAT_FC_TRACE_1               (0x04)
1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox ISTWI Read Write request                                         */
1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST
1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Tool;                       /* 00h */
1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved;                   /* 01h */
1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Flags;                      /* 0Ch */
1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      BusNum;                     /* 0Dh */
1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved3;                  /* 0Eh */
1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      NumAddressBytes;            /* 10h */
1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved4;                  /* 11h */
1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     DataLength;                 /* 12h */
1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      DeviceAddr;                 /* 14h */
1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Addr1;                      /* 15h */
1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Addr2;                      /* 16h */
1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Addr3;                      /* 17h */
1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     Reserved5;                  /* 18h */
1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    SGE_SIMPLE_UNION        SGL;                        /* 1Ch */
1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_ISTWI_READ_WRITE_REQUEST,
1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxIstwiReadWriteRequest_t, MPI_POINTER pToolboxIstwiReadWriteRequest_t;
1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_ISTWI_FLAGS_WRITE                    (0x00)
1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_ISTWI_FLAGS_READ                     (0x01)
1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Toolbox FC Management request                                            */
1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ActionInfo for Bus and TargetId */
1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_TB_FC_MANAGE_BUS_TID_AI
1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved;                   /* 00h */
1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Bus;                        /* 02h */
1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      TargetId;                   /* 03h */
1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_TB_FC_MANAGE_BUS_TID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_BUS_TID_AI,
1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  MpiTbFcManageBusTidAi_t, MPI_POINTER pMpiTbFcManageBusTidAi_t;
1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ActionInfo for port identifier */
1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_TB_FC_MANAGE_PID_AI
1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     PortIdentifier;             /* 00h */
1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_TB_FC_MANAGE_PID_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_PID_AI,
1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  MpiTbFcManagePidAi_t, MPI_POINTER pMpiTbFcManagePidAi_t;
1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
199c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* ActionInfo for set max frame size */
200c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MPI_TB_FC_MANAGE_FRAME_SIZE_AI
201c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{
202c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U16                     FrameSize;                  /* 00h */
203c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      PortNum;                    /* 02h */
204c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Reserved1;                  /* 03h */
205c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MPI_TB_FC_MANAGE_FRAME_SIZE_AI, MPI_POINTER PTR_MPI_TB_FC_MANAGE_FRAME_SIZE_AI,
206c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean  MpiTbFcManageFrameSizeAi_t, MPI_POINTER pMpiTbFcManageFrameSizeAi_t;
207c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* union of ActionInfo */
2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef union _MPI_TB_FC_MANAGE_AI_UNION
2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    MPI_TB_FC_MANAGE_BUS_TID_AI     BusTid;
2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    MPI_TB_FC_MANAGE_PID_AI         Port;
213c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    MPI_TB_FC_MANAGE_FRAME_SIZE_AI  FrameSize;
2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_TB_FC_MANAGE_AI_UNION, MPI_POINTER PTR_MPI_TB_FC_MANAGE_AI_UNION,
2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  MpiTbFcManageAiUnion_t, MPI_POINTER pMpiTbFcManageAiUnion_t;
2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_TOOLBOX_FC_MANAGE_REQUEST
2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Tool;                   /* 00h */
2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Reserved;               /* 01h */
2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          ChainOffset;            /* 02h */
2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Function;               /* 03h */
2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                         Reserved1;              /* 04h */
2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Reserved2;              /* 06h */
2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          MsgFlags;               /* 07h */
2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                         MsgContext;             /* 08h */
2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Action;                 /* 0Ch */
2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                          Reserved3;              /* 0Dh */
2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                         Reserved4;              /* 0Eh */
2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    MPI_TB_FC_MANAGE_AI_UNION   ActionInfo;             /* 10h */
2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_TOOLBOX_FC_MANAGE_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_FC_MANAGE_REQUEST,
2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  ToolboxFcManageRequest_t, MPI_POINTER pToolboxFcManageRequest_t;
2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* defines for the Action field */
2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_FC_MANAGE_ACTION_DISC_ALL            (0x00)
2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_FC_MANAGE_ACTION_DISC_PID            (0x01)
2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_TB_FC_MANAGE_ACTION_DISC_BUS_TID        (0x02)
238c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_TB_FC_MANAGE_ACTION_SET_MAX_FRAME_SIZE  (0x03)
239c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean
240c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean
241c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/
242c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* Toolbox Beacon Tool request                                               */
243c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/****************************************************************************/
244c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean
245c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Deantypedef struct _MSG_TOOLBOX_BEACON_REQUEST
246c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean{
247c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Tool;                       /* 00h */
248c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Reserved;                   /* 01h */
249c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      ChainOffset;                /* 02h */
250c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Function;                   /* 03h */
251c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U16                     Reserved1;                  /* 04h */
252c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Reserved2;                  /* 06h */
253c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      MsgFlags;                   /* 07h */
254c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U32                     MsgContext;                 /* 08h */
255c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      ConnectNum;                 /* 0Ch */
256c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      PortNum;                    /* 0Dh */
257c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Reserved3;                  /* 0Eh */
258c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U8                      Flags;                      /* 0Fh */
259c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean} MSG_TOOLBOX_BEACON_REQUEST, MPI_POINTER PTR_MSG_TOOLBOX_BEACON_REQUEST,
260c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean  ToolboxBeaconRequest_t, MPI_POINTER pToolboxBeaconRequest_t;
261c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean
262c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_TOOLBOX_FLAGS_BEACON_MODE_OFF       (0x00)
263c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_TOOLBOX_FLAGS_BEACON_MODE_ON        (0x01)
2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Diagnostic Buffer Post request                                           */
2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_DIAG_BUFFER_POST_REQUEST
2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      TraceLevel;                 /* 00h */
2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      BufferType;                 /* 01h */
2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved1;                  /* 04h */
2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved2;                  /* 06h */
2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     ExtendedType;               /* 0Ch */
2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     BufferLength;               /* 10h */
2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     ProductSpecific[4];         /* 14h */
283c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U32                     Reserved3;                  /* 24h */
284c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean    U64                     BufferAddress;              /* 28h */
2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_DIAG_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REQUEST,
2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  DiagBufferPostRequest_t, MPI_POINTER pDiagBufferPostRequest_t;
2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_DIAG_BUF_TYPE_TRACE                     (0x00)
2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_DIAG_BUF_TYPE_SNAPSHOT                  (0x01)
2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_DIAG_BUF_TYPE_EXTENDED                  (0x02)
291c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean/* count of the number of buffer types */
292c1a71d1c0440c47e006845f8accc1f212ca86852Moore, Eric Dean#define MPI_DIAG_BUF_TYPE_COUNT                     (0x03)
2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_DIAG_EXTENDED_QTAG                      (0x00000001)
2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Diagnostic Buffer Post reply */
2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_DIAG_BUFFER_POST_REPLY
2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved1;                  /* 00h */
3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      BufferType;                 /* 01h */
3021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgLength;                  /* 02h */
3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
3041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved2;                  /* 04h */
3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved3;                  /* 06h */
3061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
3081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved4;                  /* 0Ch */
3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     IOCStatus;                  /* 0Eh */
3101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     IOCLogInfo;                 /* 10h */
3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     TransferLength;             /* 14h */
3121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_DIAG_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_DIAG_BUFFER_POST_REPLY,
3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  DiagBufferPostReply_t, MPI_POINTER pDiagBufferPostReply_t;
3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
3171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Diagnostic Release request                                               */
3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************/
3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_DIAG_RELEASE_REQUEST
3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved1;                  /* 00h */
3231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      BufferType;                 /* 01h */
3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      ChainOffset;                /* 02h */
3251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
3261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved2;                  /* 04h */
3271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved3;                  /* 06h */
3281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
3291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
3301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_DIAG_RELEASE_REQUEST, MPI_POINTER PTR_MSG_DIAG_RELEASE_REQUEST,
3311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  DiagReleaseRequest_t, MPI_POINTER pDiagReleaseRequest_t;
3321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Diagnostic Release reply */
3351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_DIAG_RELEASE_REPLY
3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
3371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved1;                  /* 00h */
3381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      BufferType;                 /* 01h */
3391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgLength;                  /* 02h */
3401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Function;                   /* 03h */
3411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved2;                  /* 04h */
3421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      Reserved3;                  /* 06h */
3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U8                      MsgFlags;                   /* 07h */
3441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     MsgContext;                 /* 08h */
3451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     Reserved4;                  /* 0Ch */
3461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U16                     IOCStatus;                  /* 0Eh */
3471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    U32                     IOCLogInfo;                 /* 10h */
3481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_DIAG_RELEASE_REPLY, MPI_POINTER PTR_MSG_DIAG_RELEASE_REPLY,
3491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds  DiagReleaseReply_t, MPI_POINTER pDiagReleaseReply_t;
3501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
3531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
355