📄 mpi_ioc.h
字号:
/* * Copyright (c) 2000-2005 LSI Logic Corporation. * * * Name: mpi_ioc.h * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages * Creation Date: August 11, 2000 * * mpi_ioc.h Version: 01.05.09 * * Version History * --------------- * * Date Version Description * -------- -------- ------------------------------------------------------ * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. * 05-24-00 00.10.02 Added _MSG_IOC_INIT_REPLY structure. * 06-06-00 01.00.01 Added CurReplyFrameSize field to _MSG_IOC_FACTS_REPLY. * 06-12-00 01.00.02 Added _MSG_PORT_ENABLE_REPLY structure. * Added _MSG_EVENT_ACK_REPLY structure. * Added _MSG_FW_DOWNLOAD_REPLY structure. * Added _MSG_TOOLBOX_REPLY structure. * 06-30-00 01.00.03 Added MaxLanBuckets to _PORT_FACT_REPLY structure. * 07-27-00 01.00.04 Added _EVENT_DATA structure definitions for _SCSI, * _LINK_STATUS, _LOOP_STATE and _LOGOUT. * 08-11-00 01.00.05 Switched positions of MsgLength and Function fields in * _MSG_EVENT_ACK_REPLY structure to match specification. * 11-02-00 01.01.01 Original release for post 1.0 work. * Added a value for Manufacturer to WhoInit. * 12-04-00 01.01.02 Modified IOCFacts reply, added FWUpload messages, and * removed toolbox message. * 01-09-01 01.01.03 Added event enabled and disabled defines. * Added structures for FwHeader and DataHeader. * Added ImageType to FwUpload reply. * 02-20-01 01.01.04 Started using MPI_POINTER. * 02-27-01 01.01.05 Added event for RAID status change and its event data. * Added IocNumber field to MSG_IOC_FACTS_REPLY. * 03-27-01 01.01.06 Added defines for ProductId field of MPI_FW_HEADER. * Added structure offset comments. * 04-09-01 01.01.07 Added structure EVENT_DATA_EVENT_CHANGE. * 08-08-01 01.02.01 Original release for v1.2 work. * New format for FWVersion and ProductId in * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and * related structure and defines. * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. * Replaced a reserved field in MSG_IOC_FACTS_REPLY with * IOCExceptions and changed DataImageSize to reserved. * Added MPI_FW_DOWNLOAD_ITYPE_NVSTORE_DATA and * MPI_FW_UPLOAD_ITYPE_NVDATA. * 09-28-01 01.02.03 Modified Event Data for Integrated RAID. * 11-01-01 01.02.04 Added defines for MPI_EXT_IMAGE_HEADER ImageType field. * 03-14-02 01.02.05 Added HeaderVersion field to MSG_IOC_FACTS_REPLY. * 05-31-02 01.02.06 Added define for * MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID. * Added AliasIndex to EVENT_DATA_LOGOUT structure. * 04-01-03 01.02.07 Added defines for MPI_FW_HEADER_SIGNATURE_. * 06-26-03 01.02.08 Added new values to the product family defines. * 04-29-04 01.02.09 Added IOCCapabilities field to MSG_IOC_FACTS_REPLY and * added related defines. * 05-11-04 01.03.01 Original release for MPI v1.3. * 08-19-04 01.05.01 Added four new fields to MSG_IOC_INIT. * Added three new fields to MSG_IOC_FACTS_REPLY. * Defined four new bits for the IOCCapabilities field of * the IOCFacts reply. * Added two new PortTypes for the PortFacts reply. * Added six new events along with their EventData * structures. * Added a new MsgFlag to the FwDownload request to * indicate last segment. * Defined a new image type of boot loader. * Added FW family codes for SAS product families. * 10-05-04 01.05.02 Added ReplyFifoHostSignalingAddr field to * MSG_IOC_FACTS_REPLY. * 12-07-04 01.05.03 Added more defines for SAS Discovery Error event. * 12-09-04 01.05.04 Added Unsupported device to SAS Device event. * 01-15-05 01.05.05 Added event data for SAS SES Event. * 02-09-05 01.05.06 Added MPI_FW_UPLOAD_ITYPE_FW_BACKUP define. * 02-22-05 01.05.07 Added Host Page Buffer Persistent flag to IOC Facts * Reply and IOC Init Request. * 03-11-05 01.05.08 Added family code for 1068E family. * Removed IOCFacts Reply EEDP Capability bit. * 06-24-05 01.05.09 Added 5 new IOCFacts Reply IOCCapabilities bits. * Added Max SATA Targets to SAS Discovery Error event. * -------------------------------------------------------------------------- */#ifndef MPI_IOC_H#define MPI_IOC_H/******************************************************************************* I O C M e s s a g e s******************************************************************************//****************************************************************************//* IOCInit message *//****************************************************************************/typedef struct _MSG_IOC_INIT{ U8 WhoInit; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 Flags; /* 04h */ U8 MaxDevices; /* 05h */ U8 MaxBuses; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 ReplyFrameSize; /* 0Ch */ U8 Reserved1[2]; /* 0Eh */ U32 HostMfaHighAddr; /* 10h */ U32 SenseBufferHighAddr; /* 14h */ U32 ReplyFifoHostSignalingAddr; /* 18h */ SGE_SIMPLE_UNION HostPageBufferSGE; /* 1Ch */ U16 MsgVersion; /* 28h */ U16 HeaderVersion; /* 2Ah */} MSG_IOC_INIT, MPI_POINTER PTR_MSG_IOC_INIT, IOCInit_t, MPI_POINTER pIOCInit_t;/* WhoInit values */#define MPI_WHOINIT_NO_ONE (0x00)#define MPI_WHOINIT_SYSTEM_BIOS (0x01)#define MPI_WHOINIT_ROM_BIOS (0x02)#define MPI_WHOINIT_PCI_PEER (0x03)#define MPI_WHOINIT_HOST_DRIVER (0x04)#define MPI_WHOINIT_MANUFACTURER (0x05)/* Flags values */#define MPI_IOCINIT_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04)#define MPI_IOCINIT_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02)#define MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE (0x01)/* MsgVersion */#define MPI_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00)#define MPI_IOCINIT_MSGVERSION_MAJOR_SHIFT (8)#define MPI_IOCINIT_MSGVERSION_MINOR_MASK (0x00FF)#define MPI_IOCINIT_MSGVERSION_MINOR_SHIFT (0)/* HeaderVersion */#define MPI_IOCINIT_HEADERVERSION_UNIT_MASK (0xFF00)#define MPI_IOCINIT_HEADERVERSION_UNIT_SHIFT (8)#define MPI_IOCINIT_HEADERVERSION_DEV_MASK (0x00FF)#define MPI_IOCINIT_HEADERVERSION_DEV_SHIFT (0)typedef struct _MSG_IOC_INIT_REPLY{ U8 WhoInit; /* 00h */ U8 Reserved; /* 01h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U8 Flags; /* 04h */ U8 MaxDevices; /* 05h */ U8 MaxBuses; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved2; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */} MSG_IOC_INIT_REPLY, MPI_POINTER PTR_MSG_IOC_INIT_REPLY, IOCInitReply_t, MPI_POINTER pIOCInitReply_t;/****************************************************************************//* IOC Facts message *//****************************************************************************/typedef struct _MSG_IOC_FACTS{ U8 Reserved[2]; /* 00h */ U8 ChainOffset; /* 01h */ U8 Function; /* 02h */ U8 Reserved1[3]; /* 03h */ U8 MsgFlags; /* 04h */ U32 MsgContext; /* 08h */} MSG_IOC_FACTS, MPI_POINTER PTR_IOC_FACTS, IOCFacts_t, MPI_POINTER pIOCFacts_t;typedef struct _MPI_FW_VERSION_STRUCT{ U8 Dev; /* 00h */ U8 Unit; /* 01h */ U8 Minor; /* 02h */ U8 Major; /* 03h */} MPI_FW_VERSION_STRUCT;typedef union _MPI_FW_VERSION{ MPI_FW_VERSION_STRUCT Struct; U32 Word;} MPI_FW_VERSION;/* IOC Facts Reply */typedef struct _MSG_IOC_FACTS_REPLY{ U16 MsgVersion; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 HeaderVersion; /* 04h */ U8 IOCNumber; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 IOCExceptions; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U8 MaxChainDepth; /* 14h */ U8 WhoInit; /* 15h */ U8 BlockSize; /* 16h */ U8 Flags; /* 17h */ U16 ReplyQueueDepth; /* 18h */ U16 RequestFrameSize; /* 1Ah */ U16 Reserved_0101_FWVersion; /* 1Ch */ /* obsolete 16-bit FWVersion */ U16 ProductID; /* 1Eh */ U32 CurrentHostMfaHighAddr; /* 20h */ U16 GlobalCredits; /* 24h */ U8 NumberOfPorts; /* 26h */ U8 EventState; /* 27h */ U32 CurrentSenseBufferHighAddr; /* 28h */ U16 CurReplyFrameSize; /* 2Ch */ U8 MaxDevices; /* 2Eh */ U8 MaxBuses; /* 2Fh */ U32 FWImageSize; /* 30h */ U32 IOCCapabilities; /* 34h */ MPI_FW_VERSION FWVersion; /* 38h */ U16 HighPriorityQueueDepth; /* 3Ch */ U16 Reserved2; /* 3Eh */ SGE_SIMPLE_UNION HostPageBufferSGE; /* 40h */ U32 ReplyFifoHostSignalingAddr; /* 4Ch */} MSG_IOC_FACTS_REPLY, MPI_POINTER PTR_MSG_IOC_FACTS_REPLY, IOCFactsReply_t, MPI_POINTER pIOCFactsReply_t;#define MPI_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00)#define MPI_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8)#define MPI_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF)#define MPI_IOCFACTS_MSGVERSION_MINOR_SHIFT (0)#define MPI_IOCFACTS_HDRVERSION_UNIT_MASK (0xFF00)#define MPI_IOCFACTS_HDRVERSION_UNIT_SHIFT (8)#define MPI_IOCFACTS_HDRVERSION_DEV_MASK (0x00FF)#define MPI_IOCFACTS_HDRVERSION_DEV_SHIFT (0)#define MPI_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001)#define MPI_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002)#define MPI_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004)#define MPI_IOCFACTS_EXCEPT_PERSISTENT_TABLE_FULL (0x0008)#define MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT (0x01)#define MPI_IOCFACTS_FLAGS_REPLY_FIFO_HOST_SIGNAL (0x02)#define MPI_IOCFACTS_FLAGS_HOST_PAGE_BUFFER_PERSISTENT (0x04)#define MPI_IOCFACTS_EVENTSTATE_DISABLED (0x00)#define MPI_IOCFACTS_EVENTSTATE_ENABLED (0x01)#define MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q (0x00000001)#define MPI_IOCFACTS_CAPABILITY_REPLY_HOST_SIGNAL (0x00000002)#define MPI_IOCFACTS_CAPABILITY_QUEUE_FULL_HANDLING (0x00000004)#define MPI_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008)#define MPI_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010)#define MPI_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020)#define MPI_IOCFACTS_CAPABILITY_EEDP (0x00000040)#define MPI_IOCFACTS_CAPABILITY_BIDIRECTIONAL (0x00000080)#define MPI_IOCFACTS_CAPABILITY_MULTICAST (0x00000100)#define MPI_IOCFACTS_CAPABILITY_SCSIIO32 (0x00000200)#define MPI_IOCFACTS_CAPABILITY_NO_SCSIIO16 (0x00000400)/******************************************************************************* P o r t M e s s a g e s******************************************************************************//****************************************************************************//* Port Facts message and Reply *//****************************************************************************/typedef struct _MSG_PORT_FACTS{ U8 Reserved[2]; /* 00h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[2]; /* 04h */ U8 PortNumber; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */} MSG_PORT_FACTS, MPI_POINTER PTR_MSG_PORT_FACTS, PortFacts_t, MPI_POINTER pPortFacts_t;typedef struct _MSG_PORT_FACTS_REPLY{ U16 Reserved; /* 00h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 Reserved1; /* 04h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -