📄 mpi_cnfg.h
字号:
/******************************************************************************* C o n f i g M e s s a g e a n d S t r u c t u r e s******************************************************************************/typedef struct _CONFIG_PAGE_HEADER{ U8 PageVersion; /* 00h */ U8 PageLength; /* 01h */ U8 PageNumber; /* 02h */ U8 PageType; /* 03h */} CONFIG_PAGE_HEADER, MPI_POINTER PTR_CONFIG_PAGE_HEADER, ConfigPageHeader_t, MPI_POINTER pConfigPageHeader_t;typedef union _CONFIG_PAGE_HEADER_UNION{ ConfigPageHeader_t Struct; U8 Bytes[4]; U16 Word16[2]; U32 Word32;} ConfigPageHeaderUnion, MPI_POINTER pConfigPageHeaderUnion, CONFIG_PAGE_HEADER_UNION, MPI_POINTER PTR_CONFIG_PAGE_HEADER_UNION;typedef struct _CONFIG_EXTENDED_PAGE_HEADER{ U8 PageVersion; /* 00h */ U8 Reserved1; /* 01h */ U8 PageNumber; /* 02h */ U8 PageType; /* 03h */ U16 ExtPageLength; /* 04h */ U8 ExtPageType; /* 06h */ U8 Reserved2; /* 07h */} CONFIG_EXTENDED_PAGE_HEADER, MPI_POINTER PTR_CONFIG_EXTENDED_PAGE_HEADER, ConfigExtendedPageHeader_t, MPI_POINTER pConfigExtendedPageHeader_t;/***************************************************************************** PageType field values****************************************************************************/#define MPI_CONFIG_PAGEATTR_READ_ONLY (0x00)#define MPI_CONFIG_PAGEATTR_CHANGEABLE (0x10)#define MPI_CONFIG_PAGEATTR_PERSISTENT (0x20)#define MPI_CONFIG_PAGEATTR_RO_PERSISTENT (0x30)#define MPI_CONFIG_PAGEATTR_MASK (0xF0)#define MPI_CONFIG_PAGETYPE_IO_UNIT (0x00)#define MPI_CONFIG_PAGETYPE_IOC (0x01)#define MPI_CONFIG_PAGETYPE_BIOS (0x02)#define MPI_CONFIG_PAGETYPE_SCSI_PORT (0x03)#define MPI_CONFIG_PAGETYPE_SCSI_DEVICE (0x04)#define MPI_CONFIG_PAGETYPE_FC_PORT (0x05)#define MPI_CONFIG_PAGETYPE_FC_DEVICE (0x06)#define MPI_CONFIG_PAGETYPE_LAN (0x07)#define MPI_CONFIG_PAGETYPE_RAID_VOLUME (0x08)#define MPI_CONFIG_PAGETYPE_MANUFACTURING (0x09)#define MPI_CONFIG_PAGETYPE_RAID_PHYSDISK (0x0A)#define MPI_CONFIG_PAGETYPE_INBAND (0x0B)#define MPI_CONFIG_PAGETYPE_EXTENDED (0x0F)#define MPI_CONFIG_PAGETYPE_MASK (0x0F)#define MPI_CONFIG_TYPENUM_MASK (0x0FFF)/***************************************************************************** ExtPageType field values****************************************************************************/#define MPI_CONFIG_EXTPAGETYPE_SAS_IO_UNIT (0x10)#define MPI_CONFIG_EXTPAGETYPE_SAS_EXPANDER (0x11)#define MPI_CONFIG_EXTPAGETYPE_SAS_DEVICE (0x12)#define MPI_CONFIG_EXTPAGETYPE_SAS_PHY (0x13)#define MPI_CONFIG_EXTPAGETYPE_LOG (0x14)#define MPI_CONFIG_EXTPAGETYPE_ENCLOSURE (0x15)/***************************************************************************** PageAddress field values****************************************************************************/#define MPI_SCSI_PORT_PGAD_PORT_MASK (0x000000FF)#define MPI_SCSI_DEVICE_FORM_MASK (0xF0000000)#define MPI_SCSI_DEVICE_FORM_BUS_TID (0x00000000)#define MPI_SCSI_DEVICE_TARGET_ID_MASK (0x000000FF)#define MPI_SCSI_DEVICE_TARGET_ID_SHIFT (0)#define MPI_SCSI_DEVICE_BUS_MASK (0x0000FF00)#define MPI_SCSI_DEVICE_BUS_SHIFT (8)#define MPI_SCSI_DEVICE_FORM_TARGET_MODE (0x10000000)#define MPI_SCSI_DEVICE_TM_RESPOND_ID_MASK (0x000000FF)#define MPI_SCSI_DEVICE_TM_RESPOND_ID_SHIFT (0)#define MPI_SCSI_DEVICE_TM_BUS_MASK (0x0000FF00)#define MPI_SCSI_DEVICE_TM_BUS_SHIFT (8)#define MPI_SCSI_DEVICE_TM_INIT_ID_MASK (0x00FF0000)#define MPI_SCSI_DEVICE_TM_INIT_ID_SHIFT (16)#define MPI_FC_PORT_PGAD_PORT_MASK (0xF0000000)#define MPI_FC_PORT_PGAD_PORT_SHIFT (28)#define MPI_FC_PORT_PGAD_FORM_MASK (0x0F000000)#define MPI_FC_PORT_PGAD_FORM_INDEX (0x01000000)#define MPI_FC_PORT_PGAD_INDEX_MASK (0x0000FFFF)#define MPI_FC_PORT_PGAD_INDEX_SHIFT (0)#define MPI_FC_DEVICE_PGAD_PORT_MASK (0xF0000000)#define MPI_FC_DEVICE_PGAD_PORT_SHIFT (28)#define MPI_FC_DEVICE_PGAD_FORM_MASK (0x0F000000)#define MPI_FC_DEVICE_PGAD_FORM_NEXT_DID (0x00000000)#define MPI_FC_DEVICE_PGAD_ND_PORT_MASK (0xF0000000)#define MPI_FC_DEVICE_PGAD_ND_PORT_SHIFT (28)#define MPI_FC_DEVICE_PGAD_ND_DID_MASK (0x00FFFFFF)#define MPI_FC_DEVICE_PGAD_ND_DID_SHIFT (0)#define MPI_FC_DEVICE_PGAD_FORM_BUS_TID (0x01000000)#define MPI_FC_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00)#define MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT (8)#define MPI_FC_DEVICE_PGAD_BT_TID_MASK (0x000000FF)#define MPI_FC_DEVICE_PGAD_BT_TID_SHIFT (0)#define MPI_PHYSDISK_PGAD_PHYSDISKNUM_MASK (0x000000FF)#define MPI_PHYSDISK_PGAD_PHYSDISKNUM_SHIFT (0)#define MPI_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000)#define MPI_SAS_EXPAND_PGAD_FORM_SHIFT (28)#define MPI_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000)#define MPI_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x00000001)#define MPI_SAS_EXPAND_PGAD_FORM_HANDLE (0x00000002)#define MPI_SAS_EXPAND_PGAD_GNH_MASK_HANDLE (0x0000FFFF)#define MPI_SAS_EXPAND_PGAD_GNH_SHIFT_HANDLE (0)#define MPI_SAS_EXPAND_PGAD_HPN_MASK_PHY (0x00FF0000)#define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_PHY (16)#define MPI_SAS_EXPAND_PGAD_HPN_MASK_HANDLE (0x0000FFFF)#define MPI_SAS_EXPAND_PGAD_HPN_SHIFT_HANDLE (0)#define MPI_SAS_EXPAND_PGAD_H_MASK_HANDLE (0x0000FFFF)#define MPI_SAS_EXPAND_PGAD_H_SHIFT_HANDLE (0)#define MPI_SAS_DEVICE_PGAD_FORM_MASK (0xF0000000)#define MPI_SAS_DEVICE_PGAD_FORM_SHIFT (28)#define MPI_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000)#define MPI_SAS_DEVICE_PGAD_FORM_BUS_TARGET_ID (0x00000001)#define MPI_SAS_DEVICE_PGAD_FORM_HANDLE (0x00000002)#define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_MASK (0x0000FFFF)#define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_SHIFT (0)#define MPI_SAS_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00)#define MPI_SAS_DEVICE_PGAD_BT_BUS_SHIFT (8)#define MPI_SAS_DEVICE_PGAD_BT_TID_MASK (0x000000FF)#define MPI_SAS_DEVICE_PGAD_BT_TID_SHIFT (0)#define MPI_SAS_DEVICE_PGAD_H_HANDLE_MASK (0x0000FFFF)#define MPI_SAS_DEVICE_PGAD_H_HANDLE_SHIFT (0)#define MPI_SAS_PHY_PGAD_FORM_MASK (0xF0000000)#define MPI_SAS_PHY_PGAD_FORM_SHIFT (28)#define MPI_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x0)#define MPI_SAS_PHY_PGAD_FORM_PHY_TBL_INDEX (0x1)#define MPI_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF)#define MPI_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (0)#define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_MASK (0x0000FFFF)#define MPI_SAS_PHY_PGAD_PHY_TBL_INDEX_SHIFT (0)#define MPI_SAS_ENCLOS_PGAD_FORM_MASK (0xF0000000)#define MPI_SAS_ENCLOS_PGAD_FORM_SHIFT (28)#define MPI_SAS_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000)#define MPI_SAS_ENCLOS_PGAD_FORM_HANDLE (0x00000001)#define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_MASK (0x0000FFFF)#define MPI_SAS_ENCLOS_PGAD_GNH_HANDLE_SHIFT (0)#define MPI_SAS_ENCLOS_PGAD_H_HANDLE_MASK (0x0000FFFF)#define MPI_SAS_ENCLOS_PGAD_H_HANDLE_SHIFT (0)/***************************************************************************** Config Request Message****************************************************************************/typedef struct _MSG_CONFIG{ U8 Action; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U16 ExtPageLength; /* 04h */ U8 ExtPageType; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 Reserved2[8]; /* 0Ch */ CONFIG_PAGE_HEADER Header; /* 14h */ U32 PageAddress; /* 18h */ SGE_IO_UNION PageBufferSGE; /* 1Ch */} MSG_CONFIG, MPI_POINTER PTR_MSG_CONFIG, Config_t, MPI_POINTER pConfig_t;/***************************************************************************** Action field values****************************************************************************/#define MPI_CONFIG_ACTION_PAGE_HEADER (0x00)#define MPI_CONFIG_ACTION_PAGE_READ_CURRENT (0x01)#define MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT (0x02)#define MPI_CONFIG_ACTION_PAGE_DEFAULT (0x03)#define MPI_CONFIG_ACTION_PAGE_WRITE_NVRAM (0x04)#define MPI_CONFIG_ACTION_PAGE_READ_DEFAULT (0x05)#define MPI_CONFIG_ACTION_PAGE_READ_NVRAM (0x06)/* Config Reply Message */typedef struct _MSG_CONFIG_REPLY{ U8 Action; /* 00h */ U8 Reserved; /* 01h */ U8 MsgLength; /* 02h */ U8 Function; /* 03h */ U16 ExtPageLength; /* 04h */ U8 ExtPageType; /* 06h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 Reserved2[2]; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ CONFIG_PAGE_HEADER Header; /* 14h */} MSG_CONFIG_REPLY, MPI_POINTER PTR_MSG_CONFIG_REPLY, ConfigReply_t, MPI_POINTER pConfigReply_t;/******************************************************************************* C o n f i g u r a t i o n P a g e s******************************************************************************//***************************************************************************** Manufacturing Config pages****************************************************************************/#define MPI_MANUFACTPAGE_VENDORID_LSILOGIC (0x1000)/* Fibre Channel */#define MPI_MANUFACTPAGE_DEVICEID_FC909 (0x0621)#define MPI_MANUFACTPAGE_DEVICEID_FC919 (0x0624)#define MPI_MANUFACTPAGE_DEVICEID_FC929 (0x0622)#define MPI_MANUFACTPAGE_DEVICEID_FC919X (0x0628)#define MPI_MANUFACTPAGE_DEVICEID_FC929X (0x0626)#define MPI_MANUFACTPAGE_DEVICEID_FC939X (0x0642)#define MPI_MANUFACTPAGE_DEVICEID_FC949X (0x0640)#define MPI_MANUFACTPAGE_DEVICEID_FC949ES (0x0646)/* SCSI */#define MPI_MANUFACTPAGE_DEVID_53C1030 (0x0030)#define MPI_MANUFACTPAGE_DEVID_53C1030ZC (0x0031)#define MPI_MANUFACTPAGE_DEVID_1030_53C1035 (0x0032)#define MPI_MANUFACTPAGE_DEVID_1030ZC_53C1035 (0x0033)#define MPI_MANUFACTPAGE_DEVID_53C1035 (0x0040)#define MPI_MANUFACTPAGE_DEVID_53C1035ZC (0x0041)/* SAS */#define MPI_MANUFACTPAGE_DEVID_SAS1064 (0x0050)#define MPI_MANUFACTPAGE_DEVID_SAS1064A (0x005C)#define MPI_MANUFACTPAGE_DEVID_SAS1064E (0x0056)#define MPI_MANUFACTPAGE_DEVID_SAS1066 (0x005E)#define MPI_MANUFACTPAGE_DEVID_SAS1066E (0x005A)#define MPI_MANUFACTPAGE_DEVID_SAS1068 (0x0054)#define MPI_MANUFACTPAGE_DEVID_SAS1068E (0x0058)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -