diff options
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_ioc.h')
| -rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 77 | 
1 files changed, 68 insertions, 9 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h index ea51ce86869..754938422f6 100644 --- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h +++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h @@ -6,7 +6,7 @@   *          Title:  MPI IOC, Port, Event, FW Download, and FW Upload messages   *  Creation Date:  October 11, 2006   * - *  mpi2_ioc.h Version:  02.00.12 + *  mpi2_ioc.h Version:  02.00.13   *   *  Version History   *  --------------- @@ -87,6 +87,17 @@   *  07-30-09  02.00.12  Added GPIO Interrupt event define and structure.   *                      Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define.   *                      Added new product id family for 2208. + *  10-28-09  02.00.13  Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. + *                      Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. + *                      Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. + *                      Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. + *                      Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. + *                      Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. + *                      Added Host Based Discovery Phy Event data. + *                      Added defines for ProductID Product field + *                      (MPI2_FW_HEADER_PID_). + *                      Modified values for SAS ProductID Family + *                      (MPI2_FW_HEADER_PID_FAMILY_).   *  --------------------------------------------------------------------------   */ @@ -119,8 +130,10 @@ typedef struct _MPI2_IOC_INIT_REQUEST      U16                     MsgVersion;                     /* 0x0C */      U16                     HeaderVersion;                  /* 0x0E */      U32                     Reserved5;                      /* 0x10 */ -    U32                     Reserved6;                      /* 0x14 */ -    U16                     Reserved7;                      /* 0x18 */ +    U16                     Reserved6;                      /* 0x14 */ +    U8                      Reserved7;                      /* 0x16 */ +    U8                      HostMSIxVectors;                /* 0x17 */ +    U16                     Reserved8;                      /* 0x18 */      U16                     SystemRequestFrameSize;         /* 0x1A */      U16                     ReplyDescriptorPostQueueDepth;  /* 0x1C */      U16                     ReplyFreeQueueDepth;            /* 0x1E */ @@ -215,7 +228,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY      U8                      MaxChainDepth;                  /* 0x14 */      U8                      WhoInit;                        /* 0x15 */      U8                      NumberOfPorts;                  /* 0x16 */ -    U8                      Reserved2;                      /* 0x17 */ +    U8                      MaxMSIxVectors;                 /* 0x17 */      U16                     RequestCredit;                  /* 0x18 */      U16                     ProductID;                      /* 0x1A */      U32                     IOCCapabilities;                /* 0x1C */ @@ -233,7 +246,8 @@ typedef struct _MPI2_IOC_FACTS_REPLY      U8                      MaxVolumes;                     /* 0x37 */      U16                     MaxDevHandle;                   /* 0x38 */      U16                     MaxPersistentEntries;           /* 0x3A */ -    U32                     Reserved4;                      /* 0x3C */ +    U16                     MinDevHandle;                   /* 0x3C */ +    U16                     Reserved4;                      /* 0x3E */  } MPI2_IOC_FACTS_REPLY, MPI2_POINTER PTR_MPI2_IOC_FACTS_REPLY,    Mpi2IOCFactsReply_t, MPI2_POINTER pMpi2IOCFactsReply_t; @@ -269,6 +283,7 @@ typedef struct _MPI2_IOC_FACTS_REPLY  /* ProductID field uses MPI2_FW_HEADER_PID_ */  /* IOCCapabilities */ +#define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY   (0x00010000)  #define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX            (0x00008000)  #define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR       (0x00004000)  #define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY           (0x00002000) @@ -453,6 +468,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY  #define MPI2_EVENT_LOG_ENTRY_ADDED                  (0x0021)  #define MPI2_EVENT_SAS_PHY_COUNTER                  (0x0022)  #define MPI2_EVENT_GPIO_INTERRUPT                   (0x0023) +#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY         (0x0024)  /* Log Entry Added Event data */ @@ -793,6 +809,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST    MPI2_POINTER pMpi2EventDataSasTopologyChangeList_t;  /* values for the ExpStatus field */ +#define MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER                  (0x00)  #define MPI2_EVENT_SAS_TOPO_ES_ADDED                        (0x01)  #define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING               (0x02)  #define MPI2_EVENT_SAS_TOPO_ES_RESPONDING                   (0x03) @@ -878,6 +895,44 @@ typedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER {   * */ +/* Host Based Discovery Phy Event data */ + +typedef struct _MPI2_EVENT_HBD_PHY_SAS { +    U8          Flags;                      /* 0x00 */ +    U8          NegotiatedLinkRate;         /* 0x01 */ +    U8          PhyNum;                     /* 0x02 */ +    U8          PhysicalPort;               /* 0x03 */ +    U32         Reserved1;                  /* 0x04 */ +    U8          InitialFrame[28];           /* 0x08 */ +} MPI2_EVENT_HBD_PHY_SAS, MPI2_POINTER PTR_MPI2_EVENT_HBD_PHY_SAS, +  Mpi2EventHbdPhySas_t, MPI2_POINTER pMpi2EventHbdPhySas_t; + +/* values for the Flags field */ +#define MPI2_EVENT_HBD_SAS_FLAGS_FRAME_VALID        (0x02) +#define MPI2_EVENT_HBD_SAS_FLAGS_SATA_FRAME         (0x01) + +/* use MPI2_SAS_NEG_LINK_RATE_ defines from mpi2_cnfg.h for + * the NegotiatedLinkRate field */ + +typedef union _MPI2_EVENT_HBD_DESCRIPTOR { +    MPI2_EVENT_HBD_PHY_SAS      Sas; +} MPI2_EVENT_HBD_DESCRIPTOR, MPI2_POINTER PTR_MPI2_EVENT_HBD_DESCRIPTOR, +  Mpi2EventHbdDescriptor_t, MPI2_POINTER pMpi2EventHbdDescriptor_t; + +typedef struct _MPI2_EVENT_DATA_HBD_PHY { +    U8                          DescriptorType;     /* 0x00 */ +    U8                          Reserved1;          /* 0x01 */ +    U16                         Reserved2;          /* 0x02 */ +    U32                         Reserved3;          /* 0x04 */ +    MPI2_EVENT_HBD_DESCRIPTOR   Descriptor;         /* 0x08 */ +} MPI2_EVENT_DATA_HBD_PHY, MPI2_POINTER PTR_MPI2_EVENT_DATA_HBD_PHY, +  Mpi2EventDataHbdPhy_t, MPI2_POINTER pMpi2EventDataMpi2EventDataHbdPhy_t; + +/* values for the DescriptorType field */ +#define MPI2_EVENT_HBD_DT_SAS               (0x01) + + +  /****************************************************************************  *  EventAck message  ****************************************************************************/ @@ -1126,13 +1181,17 @@ typedef struct _MPI2_FW_IMAGE_HEADER  #define MPI2_FW_HEADER_PID_TYPE_MASK            (0xF000)  #define MPI2_FW_HEADER_PID_TYPE_SAS             (0x2000) -#define MPI2_FW_HEADER_PID_PROD_MASK            (0x0F00) -#define MPI2_FW_HEADER_PID_PROD_A               (0x0000) +#define MPI2_FW_HEADER_PID_PROD_MASK                    (0x0F00) +#define MPI2_FW_HEADER_PID_PROD_A                       (0x0000) +#define MPI2_FW_HEADER_PID_PROD_MASK                    (0x0F00) +#define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI   (0x0200) +#define MPI2_FW_HEADER_PID_PROD_IR_SCSI                 (0x0700) +  #define MPI2_FW_HEADER_PID_FAMILY_MASK          (0x00FF)  /* SAS */ -#define MPI2_FW_HEADER_PID_FAMILY_2108_SAS      (0x0010) -#define MPI2_FW_HEADER_PID_FAMILY_2208_SAS      (0x0011) +#define MPI2_FW_HEADER_PID_FAMILY_2108_SAS      (0x0013) +#define MPI2_FW_HEADER_PID_FAMILY_2208_SAS      (0x0014)  /* use MPI2_IOCFACTS_PROTOCOL_ defines for ProtocolFlags field */  |