📄 mpi_cnfg.h
字号:
/* * Copyright (c) 2000-2001 LSI Logic Corporation. * * * Name: MPI_CNFG.H * Title: MPI Config message, structures, and Pages * Creation Date: July 27, 2000 * * MPI Version: 01.01.11 * * Version History * --------------- * * Date Version Description * -------- -------- ------------------------------------------------------ * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. * 06-06-00 01.00.01 Update version number for 1.0 release. * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 * fields to FC_DEVICE_0 page, updated the page version. * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages * and updated the page versions. * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 * page and updated the page version. * Added Information field and _INFO_PARAMS_NEGOTIATED * definitionto SCSI_DEVICE_0 page. * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the * page version. * Added BucketsRemaining to LAN_1 page, redefined the * state values, and updated the page version. * Revised bus width definitions in SCSI_PORT_0, * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page * version. * Moved FC_DEVICE_0 PageAddress description to spec. * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field * widths in IOC_0 page and updated the page version. * 11-02-00 01.01.01 Original release for post 1.0 work * Added Manufacturing pages, IO Unit Page 2, SCSI SPI * Port Page 2, FC Port Page 4, FC Port Page 5 * 11-15-00 01.01.02 Interim changes to match proposals * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. * 12-05-00 01.01.04 Modified config page actions. * 01-09-01 01.01.05 Added defines for page address formats. * Data size for Manufacturing pages 2 and 3 no longer * defined here. * Io Unit Page 2 size is fixed at 4 adapters and some * flags were changed. * SCSI Port Page 2 Device Settings modified. * New fields added to FC Port Page 0 and some flags * cleaned up. * Removed impedance flash from FC Port Page 1. * Added FC Port pages 6 and 7. * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. * Added some LinkType defines for FcPortPage0. * 02-20-01 01.01.08 Started using MPI_POINTER. * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with * MPI_CONFIG_PAGETYPE_RAID_VOLUME. * Added definitions and structures for IOC Page 2 and * RAID Volume Page 2. * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. * Added VendorId and ProductRevLevel fields to * RAIDVOL2_IM_PHYS_ID struct. * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ * defines to make them compatible to MPI version 1.0. * Added structure offset comments. * 04-09-01 01.01.11 Added some new defines for the PageAddress field and * removed some obsolete ones. * Added IO Unit Page 3. * Modified defines for Scsi Port Page 2. * Modified RAID Volume Pages. * -------------------------------------------------------------------------- */#ifndef MPI_CNFG_H#define 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 */} fCONFIG_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, fCONFIG_PAGE_HEADER_UNION, MPI_POINTER PTR_CONFIG_PAGE_HEADER_UNION;/****************************************************************************//* 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_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_MASK (0x0F)#define MPI_CONFIG_TYPENUM_MASK (0x0FFF)/**************************************************************************** * PageAddres field values ****************************************************************************/#define MPI_SCSI_PORT_PGAD_PORT_MASK (0x000000FF)#define MPI_SCSI_DEVICE_FORM_MASK (0xF0000000)#define MPI_SCSI_DEVICE_FORM_TARGETID (0x00000000)#define MPI_SCSI_DEVICE_FORM_RAID_PHYS_DEV_NUM (0x10000000)#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_VOLUME_TARG_ID_MASK (0x000000FF)#define MPI_SCSI_DEVICE_VOLUME_TARG_ID_SHIFT (0)#define MPI_SCSI_DEVICE_VOLUME_BUS_MASK (0x0000FF00)#define MPI_SCSI_DEVICE_VOLUME_BUS_SHIFT (8)#define MPI_SCSI_DEVICE_PHYS_DISK_NUM_MASK (0x00FF0000)#define MPI_SCSI_DEVICE_PHYS_DISK_NUM_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)/****************************************************************************//* Config Request Message *//****************************************************************************/typedef struct _MSG_CONFIG{ U8 Action; /* 00h */ U8 Reserved; /* 01h */ U8 ChainOffset; /* 02h */ U8 Function; /* 03h */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 Reserved2[8]; /* 0Ch */ fCONFIG_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 */ U8 Reserved1[3]; /* 04h */ U8 MsgFlags; /* 07h */ U32 MsgContext; /* 08h */ U8 Reserved2[2]; /* 0Ch */ U16 IOCStatus; /* 0Eh */ U32 IOCLogInfo; /* 10h */ fCONFIG_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_DEVICEID_FC909 (0x0621)#define MPI_MANUFACTPAGE_DEVICEID_FC919 (0x0624)#define MPI_MANUFACTPAGE_DEVICEID_FC929 (0x0622)#define MPI_MANUFACTPAGE_DEVID_53C1030 (0x0030)#define MPI_MANUFACTPAGE_DEVID_53C1030ZC (0x0031)#define MPI_MANUFACTPAGE_DEVID_53C1035 (0x0035)typedef struct _CONFIG_PAGE_MANUFACTURING_0{ fCONFIG_PAGE_HEADER Header; /* 00h */ U8 ChipName[16]; /* 04h */ U8 ChipRevision[8]; /* 14h */ U8 BoardName[16]; /* 1Ch */ U8 BoardAssembly[16]; /* 2Ch */ U8 BoardTracerNumber[16]; /* 3Ch */} fCONFIG_PAGE_MANUFACTURING_0, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_0, ManufacturingPage0_t, MPI_POINTER pManufacturingPage0_t;#define MPI_MANUFACTURING0_PAGEVERSION (0x00)typedef struct _CONFIG_PAGE_MANUFACTURING_1{ fCONFIG_PAGE_HEADER Header; /* 00h */ U8 VPD[256]; /* 04h */} fCONFIG_PAGE_MANUFACTURING_1, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_1, ManufacturingPage1_t, MPI_POINTER pManufacturingPage1_t;#define MPI_MANUFACTURING1_PAGEVERSION (0x00)typedef struct _MPI_CHIP_REVISION_ID{ U16 DeviceID; /* 00h */ U8 PCIRevisionID; /* 02h */ U8 Reserved; /* 03h */} MPI_CHIP_REVISION_ID, MPI_POINTER PTR_MPI_CHIP_REVISION_ID, MpiChipRevisionId_t, MPI_POINTER pMpiChipRevisionId_t;typedef struct _CONFIG_PAGE_MANUFACTURING_2{ fCONFIG_PAGE_HEADER Header; /* 00h */ MPI_CHIP_REVISION_ID ChipId; /* 04h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -