⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpfc_hw.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 5 页
字号:
typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint32_t cv:1;	uint32_t rr:1;	uint32_t rsvd1:29;	uint32_t rv:1;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t rv:1;	uint32_t rsvd1:29;	uint32_t rr:1;	uint32_t cv:1;#endif	uint32_t biuRev;	uint32_t smRev;	union {		uint32_t smFwRev;		struct {#ifdef __BIG_ENDIAN_BITFIELD			uint8_t ProgType;			uint8_t ProgId;			uint16_t ProgVer:4;			uint16_t ProgRev:4;			uint16_t ProgFixLvl:2;			uint16_t ProgDistType:2;			uint16_t DistCnt:4;#else	/*  __LITTLE_ENDIAN_BITFIELD */			uint16_t DistCnt:4;			uint16_t ProgDistType:2;			uint16_t ProgFixLvl:2;			uint16_t ProgRev:4;			uint16_t ProgVer:4;			uint8_t ProgId;			uint8_t ProgType;#endif		} b;	} un;	uint32_t endecRev;#ifdef __BIG_ENDIAN_BITFIELD	uint8_t feaLevelHigh;	uint8_t feaLevelLow;	uint8_t fcphHigh;	uint8_t fcphLow;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint8_t fcphLow;	uint8_t fcphHigh;	uint8_t feaLevelLow;	uint8_t feaLevelHigh;#endif	uint32_t postKernRev;	uint32_t opFwRev;	uint8_t opFwName[16];	uint32_t sli1FwRev;	uint8_t sli1FwName[16];	uint32_t sli2FwRev;	uint8_t sli2FwName[16];	uint32_t rsvd2;	uint32_t RandomData[7];} READ_REV_VAR;/* Structure for MB Command READ_LINK_STAT (18) */typedef struct {	uint32_t rsvd1;	uint32_t linkFailureCnt;	uint32_t lossSyncCnt;	uint32_t lossSignalCnt;	uint32_t primSeqErrCnt;	uint32_t invalidXmitWord;	uint32_t crcCnt;	uint32_t primSeqTimeout;	uint32_t elasticOverrun;	uint32_t arbTimeout;} READ_LNK_VAR;/* Structure for MB Command REG_LOGIN (19) *//* Structure for MB Command REG_LOGIN64 (0x93) */typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint16_t rsvd1;	uint16_t rpi;	uint32_t rsvd2:8;	uint32_t did:24;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint16_t rpi;	uint16_t rsvd1;	uint32_t did:24;	uint32_t rsvd2:8;#endif	union {		struct ulp_bde sp;		struct ulp_bde64 sp64;	} un;} REG_LOGIN_VAR;/* Word 30 contents for REG_LOGIN */typedef union {	struct {#ifdef __BIG_ENDIAN_BITFIELD		uint16_t rsvd1:12;		uint16_t wd30_class:4;		uint16_t xri;#else	/*  __LITTLE_ENDIAN_BITFIELD */		uint16_t xri;		uint16_t wd30_class:4;		uint16_t rsvd1:12;#endif	} f;	uint32_t word;} REG_WD30;/* Structure for MB Command UNREG_LOGIN (20) */typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint16_t rsvd1;	uint16_t rpi;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint16_t rpi;	uint16_t rsvd1;#endif} UNREG_LOGIN_VAR;/* Structure for MB Command UNREG_D_ID (0x23) */typedef struct {	uint32_t did;} UNREG_D_ID_VAR;/* Structure for MB Command READ_LA (21) *//* Structure for MB Command READ_LA64 (0x95) */typedef struct {	uint32_t eventTag;	/* Event tag */#ifdef __BIG_ENDIAN_BITFIELD	uint32_t rsvd1:22;	uint32_t pb:1;	uint32_t il:1;	uint32_t attType:8;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t attType:8;	uint32_t il:1;	uint32_t pb:1;	uint32_t rsvd1:22;#endif#define AT_RESERVED    0x00	/* Reserved - attType */#define AT_LINK_UP     0x01	/* Link is up */#define AT_LINK_DOWN   0x02	/* Link is down */#ifdef __BIG_ENDIAN_BITFIELD	uint8_t granted_AL_PA;	uint8_t lipAlPs;	uint8_t lipType;	uint8_t topology;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint8_t topology;	uint8_t lipType;	uint8_t lipAlPs;	uint8_t granted_AL_PA;#endif#define TOPOLOGY_PT_PT 0x01	/* Topology is pt-pt / pt-fabric */#define TOPOLOGY_LOOP  0x02	/* Topology is FC-AL */	union {		struct ulp_bde lilpBde; /* This BDE points to a 128 byte buffer					   to */		/* store the LILP AL_PA position map into */		struct ulp_bde64 lilpBde64;	} un;#ifdef __BIG_ENDIAN_BITFIELD	uint32_t Dlu:1;	uint32_t Dtf:1;	uint32_t Drsvd2:14;	uint32_t DlnkSpeed:8;	uint32_t DnlPort:4;	uint32_t Dtx:2;	uint32_t Drx:2;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t Drx:2;	uint32_t Dtx:2;	uint32_t DnlPort:4;	uint32_t DlnkSpeed:8;	uint32_t Drsvd2:14;	uint32_t Dtf:1;	uint32_t Dlu:1;#endif#ifdef __BIG_ENDIAN_BITFIELD	uint32_t Ulu:1;	uint32_t Utf:1;	uint32_t Ursvd2:14;	uint32_t UlnkSpeed:8;	uint32_t UnlPort:4;	uint32_t Utx:2;	uint32_t Urx:2;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t Urx:2;	uint32_t Utx:2;	uint32_t UnlPort:4;	uint32_t UlnkSpeed:8;	uint32_t Ursvd2:14;	uint32_t Utf:1;	uint32_t Ulu:1;#endif#define LA_UNKNW_LINK  0x0    /* lnkSpeed */#define LA_1GHZ_LINK   0x04   /* lnkSpeed */#define LA_2GHZ_LINK   0x08   /* lnkSpeed */#define LA_4GHZ_LINK   0x10   /* lnkSpeed */#define LA_8GHZ_LINK   0x20   /* lnkSpeed */#define LA_10GHZ_LINK  0x40   /* lnkSpeed */} READ_LA_VAR;/* Structure for MB Command CLEAR_LA (22) */typedef struct {	uint32_t eventTag;	/* Event tag */	uint32_t rsvd1;} CLEAR_LA_VAR;/* Structure for MB Command DUMP */typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint32_t rsvd:25;	uint32_t ra:1;	uint32_t co:1;	uint32_t cv:1;	uint32_t type:4;	uint32_t entry_index:16;	uint32_t region_id:16;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t type:4;	uint32_t cv:1;	uint32_t co:1;	uint32_t ra:1;	uint32_t rsvd:25;	uint32_t region_id:16;	uint32_t entry_index:16;#endif	uint32_t rsvd1;	uint32_t word_cnt;	uint32_t resp_offset;} DUMP_VAR;#define  DMP_MEM_REG             0x1#define  DMP_NV_PARAMS           0x2#define  DMP_REGION_VPD          0xe#define  DMP_VPD_SIZE            0x400  /* maximum amount of VPD */#define  DMP_RSP_OFFSET          0x14   /* word 5 contains first word of rsp */#define  DMP_RSP_SIZE            0x6C   /* maximum of 27 words of rsp data *//* Structure for MB Command CONFIG_PORT (0x88) */typedef struct {	uint32_t pcbLen;	uint32_t pcbLow;       /* bit 31:0  of memory based port config block */	uint32_t pcbHigh;      /* bit 63:32 of memory based port config block */	uint32_t hbainit[5];} CONFIG_PORT_VAR;/* SLI-2 Port Control Block *//* SLIM POINTER */#define SLIMOFF 0x30		/* WORD */typedef struct _SLI2_RDSC {	uint32_t cmdEntries;	uint32_t cmdAddrLow;	uint32_t cmdAddrHigh;	uint32_t rspEntries;	uint32_t rspAddrLow;	uint32_t rspAddrHigh;} SLI2_RDSC;typedef struct _PCB {#ifdef __BIG_ENDIAN_BITFIELD	uint32_t type:8;#define TYPE_NATIVE_SLI2       0x01;	uint32_t feature:8;#define FEATURE_INITIAL_SLI2   0x01;	uint32_t rsvd:12;	uint32_t maxRing:4;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t maxRing:4;	uint32_t rsvd:12;	uint32_t feature:8;#define FEATURE_INITIAL_SLI2   0x01;	uint32_t type:8;#define TYPE_NATIVE_SLI2       0x01;#endif	uint32_t mailBoxSize;	uint32_t mbAddrLow;	uint32_t mbAddrHigh;	uint32_t hgpAddrLow;	uint32_t hgpAddrHigh;	uint32_t pgpAddrLow;	uint32_t pgpAddrHigh;	SLI2_RDSC rdsc[MAX_RINGS];} PCB_t;/* NEW_FEATURE */typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint32_t rsvd0:27;	uint32_t discardFarp:1;	uint32_t IPEnable:1;	uint32_t nodeName:1;	uint32_t portName:1;	uint32_t filterEnable:1;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint32_t filterEnable:1;	uint32_t portName:1;	uint32_t nodeName:1;	uint32_t IPEnable:1;	uint32_t discardFarp:1;	uint32_t rsvd:27;#endif	uint8_t portname[8];	/* Used to be struct lpfc_name */	uint8_t nodename[8];	uint32_t rsvd1;	uint32_t rsvd2;	uint32_t rsvd3;	uint32_t IPAddress;} CONFIG_FARP_VAR;/* Union of all Mailbox Command types */#define MAILBOX_CMD_WSIZE	32#define MAILBOX_CMD_SIZE	(MAILBOX_CMD_WSIZE * sizeof(uint32_t))typedef union {	uint32_t varWords[MAILBOX_CMD_WSIZE - 1];	LOAD_SM_VAR varLdSM;	/* cmd =  1 (LOAD_SM)        */	READ_NV_VAR varRDnvp;	/* cmd =  2 (READ_NVPARMS)   */	WRITE_NV_VAR varWTnvp;	/* cmd =  3 (WRITE_NVPARMS)  */	BIU_DIAG_VAR varBIUdiag;	/* cmd =  4 (RUN_BIU_DIAG)   */	INIT_LINK_VAR varInitLnk;	/* cmd =  5 (INIT_LINK)      */	DOWN_LINK_VAR varDwnLnk;	/* cmd =  6 (DOWN_LINK)      */	CONFIG_LINK varCfgLnk;	/* cmd =  7 (CONFIG_LINK)    */	PART_SLIM_VAR varSlim;	/* cmd =  8 (PART_SLIM)      */	CONFIG_RING_VAR varCfgRing;	/* cmd =  9 (CONFIG_RING)    */	RESET_RING_VAR varRstRing;	/* cmd = 10 (RESET_RING)     */	READ_CONFIG_VAR varRdConfig;	/* cmd = 11 (READ_CONFIG)    */	READ_RCONF_VAR varRdRConfig;	/* cmd = 12 (READ_RCONFIG)   */	READ_SPARM_VAR varRdSparm;	/* cmd = 13 (READ_SPARM(64)) */	READ_STATUS_VAR varRdStatus;	/* cmd = 14 (READ_STATUS)    */	READ_RPI_VAR varRdRPI;	/* cmd = 15 (READ_RPI(64))   */	READ_XRI_VAR varRdXRI;	/* cmd = 16 (READ_XRI)       */	READ_REV_VAR varRdRev;	/* cmd = 17 (READ_REV)       */	READ_LNK_VAR varRdLnk;	/* cmd = 18 (READ_LNK_STAT)  */	REG_LOGIN_VAR varRegLogin;	/* cmd = 19 (REG_LOGIN(64))  */	UNREG_LOGIN_VAR varUnregLogin;	/* cmd = 20 (UNREG_LOGIN)    */	READ_LA_VAR varReadLA;	/* cmd = 21 (READ_LA(64))    */	CLEAR_LA_VAR varClearLA;	/* cmd = 22 (CLEAR_LA)       */	DUMP_VAR varDmp;	/* Warm Start DUMP mbx cmd   */	UNREG_D_ID_VAR varUnregDID; /* cmd = 0x23 (UNREG_D_ID)   */	CONFIG_FARP_VAR varCfgFarp; /* cmd = 0x25 (CONFIG_FARP)  NEW_FEATURE */	CONFIG_PORT_VAR varCfgPort; /* cmd = 0x88 (CONFIG_PORT)  */} MAILVARIANTS;/* * SLI-2 specific structures */struct lpfc_hgp {	__le32 cmdPutInx;	__le32 rspGetInx;};struct lpfc_pgp {	__le32 cmdGetInx;	__le32 rspPutInx;};typedef struct _SLI2_DESC {	struct lpfc_hgp host[MAX_RINGS];	uint32_t unused1[16];	struct lpfc_pgp port[MAX_RINGS];} SLI2_DESC;typedef union {	SLI2_DESC s2;} SLI_VAR;typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint16_t mbxStatus;	uint8_t mbxCommand;	uint8_t mbxReserved:6;	uint8_t mbxHc:1;	uint8_t mbxOwner:1;	/* Low order bit first word */#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint8_t mbxOwner:1;	/* Low order bit first word */	uint8_t mbxHc:1;	uint8_t mbxReserved:6;	uint8_t mbxCommand;	uint16_t mbxStatus;#endif	MAILVARIANTS un;	SLI_VAR us;} MAILBOX_t;/* *    Begin Structure Definitions for IOCB Commands */typedef struct {#ifdef __BIG_ENDIAN_BITFIELD	uint8_t statAction;	uint8_t statRsn;	uint8_t statBaExp;	uint8_t statLocalError;#else	/*  __LITTLE_ENDIAN_BITFIELD */	uint8_t statLocalError;	uint8_t statBaExp;	uint8_t statRsn;	uint8_t statAction;#endif	/* statRsn  P/F_RJT reason codes */#define RJT_BAD_D_ID       0x01	/* Invalid D_ID field */#define RJT_BAD_S_ID       0x02	/* Invalid S_ID field */#define RJT_UNAVAIL_TEMP   0x03	/* N_Port unavailable temp. */#define RJT_UNAVAIL_PERM   0x04	/* N_Port unavailable perm. */#define RJT_UNSUP_CLASS    0x05	/* Class not supported */#define RJT_DELIM_ERR      0x06	/* Delimiter usage error */#define RJT_UNSUP_TYPE     0x07	/* Type not supported */#define RJT_BAD_CONTROL    0x08	/* Invalid link conrtol */#define RJT_BAD_RCTL       0x09	/* R_CTL invalid */#define RJT_BAD_FCTL       0x0A	/* F_CTL invalid */#define RJT_BAD_OXID       0x0B	/* OX_ID invalid */#define RJT_BAD_RXID       0x0C	/* RX_ID invalid */#define RJT_BAD_SEQID      0x0D	/* SEQ_ID invalid */#define RJT_BAD_DFCTL      0x0E	/* DF_CTL invalid */#define RJT_BAD_SEQCNT     0x0F	/* SEQ_CNT invalid */#define RJT_BAD_PARM       0x10	/* Param. field invalid */#define RJT_XCHG_ERR       0x11	/* Exchange error */#define RJT_PROT_ERR       0x12	/* Protocol error */#define RJT_BAD_LENGTH     0x13	/* Invalid Length */#define RJT_UNEXPECTED_ACK 0x14	/* Unexpected ACK */#define RJT_LOGIN_REQUIRED 0x16	/* Login required */#define RJT_TOO_MANY_SEQ   0x17

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -