📄 mpi_ioc.h
字号:
{ U8 Character4; /* 00h */ U8 Character3; /* 01h */ U8 Type; /* 02h */ U8 Reserved; /* 03h */ U8 Reserved1; /* 04h */ U8 Port; /* 05h */ U16 Reserved2; /* 06h */} EVENT_DATA_LOOP_STATE, MPI_POINTER PTR_EVENT_DATA_LOOP_STATE, EventDataLoopState_t, MPI_POINTER pEventDataLoopState_t;#define MPI_EVENT_LOOP_STATE_CHANGE_LIP (0x0001)#define MPI_EVENT_LOOP_STATE_CHANGE_LPE (0x0002)#define MPI_EVENT_LOOP_STATE_CHANGE_LPB (0x0003)/* MPI LOGOUT Event data */typedef struct _EVENT_DATA_LOGOUT{ U32 NPortID; /* 00h */ U8 AliasIndex; /* 04h */ U8 Port; /* 05h */ U16 Reserved1; /* 06h */} EVENT_DATA_LOGOUT, MPI_POINTER PTR_EVENT_DATA_LOGOUT, EventDataLogout_t, MPI_POINTER pEventDataLogout_t;#define MPI_EVENT_LOGOUT_ALL_ALIASES (0xFF)/* SAS SES Event data */typedef struct _EVENT_DATA_SAS_SES{ U8 PhyNum; /* 00h */ U8 Port; /* 01h */ U8 PortWidth; /* 02h */ U8 Reserved1; /* 04h */} EVENT_DATA_SAS_SES, MPI_POINTER PTR_EVENT_DATA_SAS_SES, MpiEventDataSasSes_t, MPI_POINTER pMpiEventDataSasSes_t;/* SAS Phy Link Status Event data */typedef struct _EVENT_DATA_SAS_PHY_LINK_STATUS{ U8 PhyNum; /* 00h */ U8 LinkRates; /* 01h */ U16 DevHandle; /* 02h */ U64 SASAddress; /* 04h */} EVENT_DATA_SAS_PHY_LINK_STATUS, MPI_POINTER PTR_EVENT_DATA_SAS_PHY_LINK_STATUS, MpiEventDataSasPhyLinkStatus_t, MPI_POINTER pMpiEventDataSasPhyLinkStatus_t;/* defines for the LinkRates field of the SAS PHY Link Status event */#define MPI_EVENT_SAS_PLS_LR_CURRENT_MASK (0xF0)#define MPI_EVENT_SAS_PLS_LR_CURRENT_SHIFT (4)#define MPI_EVENT_SAS_PLS_LR_PREVIOUS_MASK (0x0F)#define MPI_EVENT_SAS_PLS_LR_PREVIOUS_SHIFT (0)#define MPI_EVENT_SAS_PLS_LR_RATE_UNKNOWN (0x00)#define MPI_EVENT_SAS_PLS_LR_RATE_PHY_DISABLED (0x01)#define MPI_EVENT_SAS_PLS_LR_RATE_FAILED_SPEED_NEGOTIATION (0x02)#define MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE (0x03)#define MPI_EVENT_SAS_PLS_LR_RATE_1_5 (0x08)#define MPI_EVENT_SAS_PLS_LR_RATE_3_0 (0x09)/* SAS Discovery Errror Event data */typedef struct _EVENT_DATA_DISCOVERY_ERROR{ U32 DiscoveryStatus; /* 00h */ U8 Port; /* 04h */ U8 Reserved1; /* 05h */ U16 Reserved2; /* 06h */} EVENT_DATA_DISCOVERY_ERROR, MPI_POINTER PTR_EVENT_DATA_DISCOVERY_ERROR, EventDataDiscoveryError_t, MPI_POINTER pEventDataDiscoveryError_t;#define MPI_EVENT_DSCVRY_ERR_DS_LOOP_DETECTED (0x00000001)#define MPI_EVENT_DSCVRY_ERR_DS_UNADDRESSABLE_DEVICE (0x00000002)#define MPI_EVENT_DSCVRY_ERR_DS_MULTIPLE_PORTS (0x00000004)#define MPI_EVENT_DSCVRY_ERR_DS_EXPANDER_ERR (0x00000008)#define MPI_EVENT_DSCVRY_ERR_DS_SMP_TIMEOUT (0x00000010)#define MPI_EVENT_DSCVRY_ERR_DS_OUT_ROUTE_ENTRIES (0x00000020)#define MPI_EVENT_DSCVRY_ERR_DS_INDEX_NOT_EXIST (0x00000040)#define MPI_EVENT_DSCVRY_ERR_DS_SMP_FUNCTION_FAILED (0x00000080)#define MPI_EVENT_DSCVRY_ERR_DS_SMP_CRC_ERROR (0x00000100)#define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_SUBTRACTIVE (0x00000200)#define MPI_EVENT_DSCVRY_ERR_DS_TABLE_TO_TABLE (0x00000400)#define MPI_EVENT_DSCVRY_ERR_DS_MULTPL_PATHS (0x00000800)#define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000)/******************************************************************************* F i r m w a r e L o a d M e s s a g e s******************************************************************************//****************************************************************************//* Firmware Download message and associated structures *//****************************************************************************/typedef struct _MSG_FW_DOWNLOAD{ U8 ImageType; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ SGE_MPI_UNION SGL; /* 0Ch */} MSG_FW_DOWNLOAD, MPI_POINTER PTR_MSG_FW_DOWNLOAD, FWDownload_t, MPI_POINTER pFWDownload_t;#define MPI_FW_DOWNLOAD_MSGFLGS_LAST_SEGMENT (0x01)#define MPI_FW_DOWNLOAD_ITYPE_RESERVED (0x00)#define MPI_FW_DOWNLOAD_ITYPE_FW (0x01)#define MPI_FW_DOWNLOAD_ITYPE_BIOS (0x02)#define MPI_FW_DOWNLOAD_ITYPE_NVDATA (0x03)#define MPI_FW_DOWNLOAD_ITYPE_BOOTLOADER (0x04)typedef struct _FWDownloadTCSGE{ U8 Reserved; /* 00h */ U8 ContextSize; /* 01h */ U8 DetailsLength; /* 02h */ U8 Flags; /* 03h */ U32 Reserved_0100_Checksum; /* 04h */ /* obsolete Checksum */ U32 ImageOffset; /* 08h */ U32 ImageSize; /* 0Ch */} FW_DOWNLOAD_TCSGE, MPI_POINTER PTR_FW_DOWNLOAD_TCSGE, FWDownloadTCSGE_t, MPI_POINTER pFWDownloadTCSGE_t;/* Firmware Download reply */typedef struct _MSG_FW_DOWNLOAD_REPLY{ U8 ImageType; /* 00h */ U8 Reserved; /* 01h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved2; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */} MSG_FW_DOWNLOAD_REPLY, MPI_POINTER PTR_MSG_FW_DOWNLOAD_REPLY, FWDownloadReply_t, MPI_POINTER pFWDownloadReply_t;/****************************************************************************//* Firmware Upload message and associated structures *//****************************************************************************/typedef struct _MSG_FW_UPLOAD{ U8 ImageType; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ SGE_MPI_UNION SGL; /* 0Ch */} MSG_FW_UPLOAD, MPI_POINTER PTR_MSG_FW_UPLOAD, FWUpload_t, MPI_POINTER pFWUpload_t;#define MPI_FW_UPLOAD_ITYPE_FW_IOC_MEM (0x00)#define MPI_FW_UPLOAD_ITYPE_FW_FLASH (0x01)#define MPI_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02)#define MPI_FW_UPLOAD_ITYPE_NVDATA (0x03)#define MPI_FW_UPLOAD_ITYPE_BOOTLOADER (0x04)#define MPI_FW_UPLOAD_ITYPE_FW_BACKUP (0x05)typedef struct _FWUploadTCSGE{ U8 Reserved; /* 00h */ U8 ContextSize; /* 01h */ U8 DetailsLength; /* 02h */ U8 Flags; /* 03h */ U32 Reserved1; /* 04h */ U32 ImageOffset; /* 08h */ U32 ImageSize; /* 0Ch */} FW_UPLOAD_TCSGE, MPI_POINTER PTR_FW_UPLOAD_TCSGE, FWUploadTCSGE_t, MPI_POINTER pFWUploadTCSGE_t;/* Firmware Upload reply */typedef struct _MSG_FW_UPLOAD_REPLY{ U8 ImageType; /* 00h */ U8 Reserved; /* 01h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U16 Reserved2; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ U32 ActualImageSize; /* 14h */} MSG_FW_UPLOAD_REPLY, MPI_POINTER PTR_MSG_FW_UPLOAD_REPLY, FWUploadReply_t, MPI_POINTER pFWUploadReply_t;typedef struct _MPI_FW_HEADER{ U32 ArmBranchInstruction0; /* 00h */ U32 Signature0; /* 04h */ U32 Signature1; /* 08h */ U32 Signature2; /* 0Ch */ U32 ArmBranchInstruction1; /* 10h */ U32 ArmBranchInstruction2; /* 14h */ U32 Reserved; /* 18h */ U32 Checksum; /* 1Ch */ U16 VendorId; /* 20h */ U16 ProductId; /* 22h */ MPI_FW_VERSION FWVersion; /* 24h */ U32 SeqCodeVersion; /* 28h */ U32 ImageSize; /* 2Ch */ U32 NextImageHeaderOffset; /* 30h */ U32 LoadStartAddress; /* 34h */ U32 IopResetVectorValue; /* 38h */ U32 IopResetRegAddr; /* 3Ch */ U32 VersionNameWhat; /* 40h */ U8 VersionName[32]; /* 44h */ U32 VendorNameWhat; /* 64h */ U8 VendorName[32]; /* 68h */} MPI_FW_HEADER, MPI_POINTER PTR_MPI_FW_HEADER, MpiFwHeader_t, MPI_POINTER pMpiFwHeader_t;#define MPI_FW_HEADER_WHAT_SIGNATURE (0x29232840)/* defines for using the ProductId field */#define MPI_FW_HEADER_PID_TYPE_MASK (0xF000)#define MPI_FW_HEADER_PID_TYPE_SCSI (0x0000)#define MPI_FW_HEADER_PID_TYPE_FC (0x1000)#define MPI_FW_HEADER_PID_TYPE_SAS (0x2000)#define MPI_FW_HEADER_SIGNATURE_0 (0x5AEAA55A)#define MPI_FW_HEADER_SIGNATURE_1 (0xA55AEAA5)#define MPI_FW_HEADER_SIGNATURE_2 (0x5AA55AEA)#define MPI_FW_HEADER_PID_PROD_MASK (0x0F00)#define MPI_FW_HEADER_PID_PROD_INITIATOR_SCSI (0x0100)#define MPI_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)#define MPI_FW_HEADER_PID_PROD_TARGET_SCSI (0x0300)#define MPI_FW_HEADER_PID_PROD_IM_SCSI (0x0400)#define MPI_FW_HEADER_PID_PROD_IS_SCSI (0x0500)#define MPI_FW_HEADER_PID_PROD_CTX_SCSI (0x0600)#define MPI_FW_HEADER_PID_PROD_IR_SCSI (0x0700)#define MPI_FW_HEADER_PID_FAMILY_MASK (0x00FF)/* SCSI */#define MPI_FW_HEADER_PID_FAMILY_1030A0_SCSI (0x0001)#define MPI_FW_HEADER_PID_FAMILY_1030B0_SCSI (0x0002)#define MPI_FW_HEADER_PID_FAMILY_1030B1_SCSI (0x0003)#define MPI_FW_HEADER_PID_FAMILY_1030C0_SCSI (0x0004)#define MPI_FW_HEADER_PID_FAMILY_1020A0_SCSI (0x0005)#define MPI_FW_HEADER_PID_FAMILY_1020B0_SCSI (0x0006)#define MPI_FW_HEADER_PID_FAMILY_1020B1_SCSI (0x0007)#define MPI_FW_HEADER_PID_FAMILY_1020C0_SCSI (0x0008)#define MPI_FW_HEADER_PID_FAMILY_1035A0_SCSI (0x0009)#define MPI_FW_HEADER_PID_FAMILY_1035B0_SCSI (0x000A)#define MPI_FW_HEADER_PID_FAMILY_1030TA0_SCSI (0x000B)#define MPI_FW_HEADER_PID_FAMILY_1020TA0_SCSI (0x000C)/* Fibre Channel */#define MPI_FW_HEADER_PID_FAMILY_909_FC (0x0000)#define MPI_FW_HEADER_PID_FAMILY_919_FC (0x0001) /* 919 and 929 */#define MPI_FW_HEADER_PID_FAMILY_919X_FC (0x0002) /* 919X and 929X */#define MPI_FW_HEADER_PID_FAMILY_919XL_FC (0x0003) /* 919XL and 929XL */#define MPI_FW_HEADER_PID_FAMILY_939X_FC (0x0004) /* 939X and 949X */#define MPI_FW_HEADER_PID_FAMILY_959_FC (0x0005)/* SAS */#define MPI_FW_HEADER_PID_FAMILY_1064_SAS (0x0001)#define MPI_FW_HEADER_PID_FAMILY_1068_SAS (0x0002)#define MPI_FW_HEADER_PID_FAMILY_1078_SAS (0x0003)#define MPI_FW_HEADER_PID_FAMILY_106xE_SAS (0x0004) /* 1068E, 1066E, and 1064E */typedef struct _MPI_EXT_IMAGE_HEADER{ U8 ImageType; /* 00h */ U8 Reserved; /* 01h */ U16 Reserved1; /* 02h */ U32 Checksum; /* 04h */ U32 ImageSize; /* 08h */ U32 NextImageHeaderOffset; /* 0Ch */ U32 LoadStartAddress; /* 10h */ U32 Reserved2; /* 14h */} MPI_EXT_IMAGE_HEADER, MPI_POINTER PTR_MPI_EXT_IMAGE_HEADER, MpiExtImageHeader_t, MPI_POINTER pMpiExtImageHeader_t;/* defines for the ImageType field */#define MPI_EXT_IMAGE_TYPE_UNSPECIFIED (0x00)#define MPI_EXT_IMAGE_TYPE_FW (0x01)#define MPI_EXT_IMAGE_TYPE_NVDATA (0x03)#define MPI_EXT_IMAGE_TYPE_BOOTLOADER (0x04)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -