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

📄 xbow.h

📁 linux-2.4.29操作系统的源码
💻 H
📖 第 1 页 / 共 3 页
字号:
#define	XB_LINK_AUX_STATUS(x)	(XB_LINK_REG_BASE(x) + 0x3c)/* link_control(x) */#define	XB_CTRL_LINKALIVE_IE		0x80000000	/* link comes alive */     /* reserved:			0x40000000 */#define	XB_CTRL_PERF_CTR_MODE_MSK	0x30000000	/* perf counter mode */#define	XB_CTRL_IBUF_LEVEL_MSK		0x0e000000	/* input packet buffer level */#define	XB_CTRL_8BIT_MODE		0x01000000	/* force link into 8 bit mode */#define XB_CTRL_BAD_LLP_PKT		0x00800000	/* force bad LLP packet */#define XB_CTRL_WIDGET_CR_MSK		0x007c0000	/* LLP widget credit mask */#define XB_CTRL_WIDGET_CR_SHFT	18			/* LLP widget credit shift */#define XB_CTRL_ILLEGAL_DST_IE		0x00020000	/* illegal destination */#define XB_CTRL_OALLOC_IBUF_IE		0x00010000	/* overallocated input buffer */     /* reserved:			0x0000fe00 */#define XB_CTRL_BNDWDTH_ALLOC_IE	0x00000100	/* bandwidth alloc */#define XB_CTRL_RCV_CNT_OFLOW_IE	0x00000080	/* rcv retry overflow */#define XB_CTRL_XMT_CNT_OFLOW_IE	0x00000040	/* xmt retry overflow */#define XB_CTRL_XMT_MAX_RTRY_IE		0x00000020	/* max transmit retry */#define XB_CTRL_RCV_IE			0x00000010	/* receive */#define XB_CTRL_XMT_RTRY_IE		0x00000008	/* transmit retry */     /* reserved:			0x00000004 */#define	XB_CTRL_MAXREQ_TOUT_IE		0x00000002	/* maximum request timeout */#define	XB_CTRL_SRC_TOUT_IE		0x00000001	/* source timeout *//* link_status(x) */#define	XB_STAT_LINKALIVE		XB_CTRL_LINKALIVE_IE     /* reserved:			0x7ff80000 */#define	XB_STAT_MULTI_ERR		0x00040000	/* multi error */#define	XB_STAT_ILLEGAL_DST_ERR		XB_CTRL_ILLEGAL_DST_IE#define	XB_STAT_OALLOC_IBUF_ERR		XB_CTRL_OALLOC_IBUF_IE#define	XB_STAT_BNDWDTH_ALLOC_ID_MSK	0x0000ff00	/* port bitmask */#define	XB_STAT_RCV_CNT_OFLOW_ERR	XB_CTRL_RCV_CNT_OFLOW_IE#define	XB_STAT_XMT_CNT_OFLOW_ERR	XB_CTRL_XMT_CNT_OFLOW_IE#define	XB_STAT_XMT_MAX_RTRY_ERR	XB_CTRL_XMT_MAX_RTRY_IE#define	XB_STAT_RCV_ERR			XB_CTRL_RCV_IE#define	XB_STAT_XMT_RTRY_ERR		XB_CTRL_XMT_RTRY_IE     /* reserved:			0x00000004 */#define	XB_STAT_MAXREQ_TOUT_ERR		XB_CTRL_MAXREQ_TOUT_IE#define	XB_STAT_SRC_TOUT_ERR		XB_CTRL_SRC_TOUT_IE/* link_aux_status(x) */#define	XB_AUX_STAT_RCV_CNT	0xff000000#define	XB_AUX_STAT_XMT_CNT	0x00ff0000#define	XB_AUX_STAT_TOUT_DST	0x0000ff00#define	XB_AUX_LINKFAIL_RST_BAD	0x00000040#define	XB_AUX_STAT_PRESENT	0x00000020#define	XB_AUX_STAT_PORT_WIDTH	0x00000010     /*	reserved:		0x0000000f *//* * link_arb_upper/link_arb_lower(x), (reg) should be the link_arb_upper * register if (x) is 0x8..0xb, link_arb_lower if (x) is 0xc..0xf */#define	XB_ARB_GBR_MSK		0x1f#define	XB_ARB_RR_MSK		0x7#define	XB_ARB_GBR_SHFT(x)	(((x) & 0x3) * 8)#define	XB_ARB_RR_SHFT(x)	(((x) & 0x3) * 8 + 5)#define	XB_ARB_GBR_CNT(reg,x)	((reg) >> XB_ARB_GBR_SHFT(x) & XB_ARB_GBR_MSK)#define	XB_ARB_RR_CNT(reg,x)	((reg) >> XB_ARB_RR_SHFT(x) & XB_ARB_RR_MSK)/* XBOW_WID_STAT */#define	XB_WID_STAT_LINK_INTR_SHFT	(24)#define	XB_WID_STAT_LINK_INTR_MASK	(0xFF << XB_WID_STAT_LINK_INTR_SHFT)#define	XB_WID_STAT_LINK_INTR(x)	(0x1 << (((x)&7) + XB_WID_STAT_LINK_INTR_SHFT))#define	XB_WID_STAT_WIDGET0_INTR	0x00800000#define XB_WID_STAT_SRCID_MASK		0x000003c0	/* Xbridge only */#define	XB_WID_STAT_REG_ACC_ERR		0x00000020#define XB_WID_STAT_RECV_TOUT		0x00000010	/* Xbridge only */#define XB_WID_STAT_ARB_TOUT		0x00000008	/* Xbridge only */#define	XB_WID_STAT_XTALK_ERR		0x00000004#define XB_WID_STAT_DST_TOUT		0x00000002	/* Xbridge only */#define	XB_WID_STAT_MULTI_ERR		0x00000001#define XB_WID_STAT_SRCID_SHFT		6/* XBOW_WID_CONTROL */#define XB_WID_CTRL_REG_ACC_IE		XB_WID_STAT_REG_ACC_ERR#define XB_WID_CTRL_RECV_TOUT		XB_WID_STAT_RECV_TOUT#define XB_WID_CTRL_ARB_TOUT		XB_WID_STAT_ARB_TOUT#define XB_WID_CTRL_XTALK_IE		XB_WID_STAT_XTALK_ERR/* XBOW_WID_INT_UPPER *//* defined in xwidget.h for WIDGET_INTDEST_UPPER_ADDR *//* XBOW WIDGET part number, in the ID register */#define XBOW_WIDGET_PART_NUM	0x0		/* crossbow */#define XXBOW_WIDGET_PART_NUM	0xd000		/* Xbridge */#define	XBOW_WIDGET_MFGR_NUM	0x0#define	XXBOW_WIDGET_MFGR_NUM	0x0#define PXBOW_WIDGET_PART_NUM   0xd100          /* PIC */#define	XBOW_REV_1_0		0x1	/* xbow rev 1.0 is "1" */#define	XBOW_REV_1_1		0x2	/* xbow rev 1.1 is "2" */#define XBOW_REV_1_2		0x3	/* xbow rev 1.2 is "3" */#define XBOW_REV_1_3		0x4	/* xbow rev 1.3 is "4" */#define XBOW_REV_2_0		0x5	/* xbow rev 2.0 is "5" */#define XXBOW_PART_REV_1_0		(XXBOW_WIDGET_PART_NUM << 4 | 0x1 )#define XXBOW_PART_REV_2_0		(XXBOW_WIDGET_PART_NUM << 4 | 0x2 )/* XBOW_WID_ARB_RELOAD */#define	XBOW_WID_ARB_RELOAD_INT	0x3f	/* GBR reload interval */#define IS_XBRIDGE_XBOW(wid) \        (XWIDGET_PART_NUM(wid) == XXBOW_WIDGET_PART_NUM && \                        XWIDGET_MFG_NUM(wid) == XXBOW_WIDGET_MFGR_NUM)#define IS_PIC_XBOW(wid) \        (XWIDGET_PART_NUM(wid) == PXBOW_WIDGET_PART_NUM && \                        XWIDGET_MFG_NUM(wid) == XXBOW_WIDGET_MFGR_NUM)#define XBOW_WAR_ENABLED(pv, widid) ((1 << XWIDGET_REV_NUM(widid)) & pv)#define PV854827 (~0)     /* PIC: fake widget 0xf presence bit. permanent */#define PV863579 (1 << 1) /* PIC: PIO to PIC register */#ifndef __ASSEMBLY__/* * XBOW Widget 0 Register formats. * Format for many of these registers are similar to the standard * widget register format described as part of xtalk specification * Standard widget register field format description is available in * xwidget.h * Following structures define the format for xbow widget 0 registers *//* * Xbow Widget 0 Command error word */#ifdef LITTLE_ENDIANtypedef union xbw0_cmdword_u {    xbowreg_t               cmdword;    struct {	uint32_t              rsvd:8,		/* Reserved */                                barr:1,         /* Barrier operation */                                error:1,        /* Error Occured */                                vbpm:1,         /* Virtual Backplane message */                                gbr:1,  /* GBR enable ?                 */                                ds:2,   /* Data size                    */                                ct:1,   /* Is it a coherent transaction */                                tnum:5,         /* Transaction Number */                                pactyp:4,       /* Packet type: */                                srcid:4,        /* Source ID number */                                destid:4;       /* Desination ID number */    } xbw0_cmdfield;} xbw0_cmdword_t;#elsetypedef union xbw0_cmdword_u {    xbowreg_t		    cmdword;    struct {	uint32_t		destid:4,	/* Desination ID number */				srcid:4,	/* Source ID number */				pactyp:4,	/* Packet type: */				tnum:5,		/* Transaction Number */				ct:1,	/* Is it a coherent transaction */				ds:2,	/* Data size			*/				gbr:1,	/* GBR enable ?			*/				vbpm:1,		/* Virtual Backplane message */				error:1,	/* Error Occured */				barr:1,		/* Barrier operation */				rsvd:8;		/* Reserved */    } xbw0_cmdfield;} xbw0_cmdword_t;#endif#define	xbcmd_destid	xbw0_cmdfield.destid#define	xbcmd_srcid	xbw0_cmdfield.srcid#define	xbcmd_pactyp	xbw0_cmdfield.pactyp#define	xbcmd_tnum	xbw0_cmdfield.tnum#define	xbcmd_ct	xbw0_cmdfield.ct#define	xbcmd_ds	xbw0_cmdfield.ds#define	xbcmd_gbr	xbw0_cmdfield.gbr#define	xbcmd_vbpm	xbw0_cmdfield.vbpm#define	xbcmd_error	xbw0_cmdfield.error#define	xbcmd_barr	xbw0_cmdfield.barr/* * Values for field PACTYP in xbow error command word */#define	XBCMDTYP_READREQ	0	/* Read Request   packet  */#define	XBCMDTYP_READRESP	1	/* Read Response packet   */#define	XBCMDTYP_WRREQ_RESP	2	/* Write Request with response    */#define	XBCMDTYP_WRRESP		3	/* Write Response */#define	XBCMDTYP_WRREQ_NORESP	4	/* Write request with  No Response */#define	XBCMDTYP_FETCHOP	6	/* Fetch & Op packet      */#define	XBCMDTYP_STOREOP	8	/* Store & Op packet      */#define	XBCMDTYP_SPLPKT_REQ	0xE	/* Special packet request */#define	XBCMDTYP_SPLPKT_RESP	0xF	/* Special packet response        *//* * Values for field ds (datasize) in xbow error command word */#define	XBCMDSZ_DOUBLEWORD	0#define	XBCMDSZ_QUARTRCACHE	1#define	XBCMDSZ_FULLCACHE	2/* * Xbow widget 0 Status register format. */#ifdef LITTLE_ENDIANtypedef union xbw0_status_u {    xbowreg_t               statusword;    struct {       uint32_t		mult_err:1,	/* Multiple error occurred */                                connect_tout:1, /* Connection timeout   */                                xtalk_err:1,    /* Xtalk pkt with error bit */                                /* End of Xbridge only */                                w0_arb_tout,    /* arbiter timeout err */                                w0_recv_tout,   /* receive timeout err */                                /* Xbridge only */                                regacc_err:1,   /* Reg Access error     */                                src_id:4,       /* source id. Xbridge only */                                resvd1:13,                                wid0intr:1;     /* Widget 0 err intr */    } xbw0_stfield;} xbw0_status_t;#elsetypedef union xbw0_status_u {    xbowreg_t		    statusword;    struct {	uint32_t		linkXintr:8,	/* link(x) error intr */				wid0intr:1,	/* Widget 0 err intr */				resvd1:13,				src_id:4,	/* source id. Xbridge only */				regacc_err:1,	/* Reg Access error	*/				/* Xbridge only */				w0_recv_tout,	/* receive timeout err */				w0_arb_tout,	/* arbiter timeout err */				/* End of Xbridge only */				xtalk_err:1,	/* Xtalk pkt with error bit */				connect_tout:1, /* Connection timeout	*/				mult_err:1;	/* Multiple error occurred */    } xbw0_stfield;} xbw0_status_t;#endif#define	xbst_linkXintr		xbw0_stfield.linkXintr#define	xbst_w0intr		xbw0_stfield.wid0intr#define	xbst_regacc_err		xbw0_stfield.regacc_err#define	xbst_xtalk_err		xbw0_stfield.xtalk_err#define	xbst_connect_tout	xbw0_stfield.connect_tout#define	xbst_mult_err		xbw0_stfield.mult_err#define xbst_src_id		xbw0_stfield.src_id	    /* Xbridge only */#define xbst_w0_recv_tout	xbw0_stfield.w0_recv_tout   /* Xbridge only */#define xbst_w0_arb_tout	xbw0_stfield.w0_arb_tout    /* Xbridge only *//* * Xbow widget 0 Control register format */#ifdef LITTLE_ENDIANtypedef union xbw0_ctrl_u {    xbowreg_t               ctrlword;    struct {	uint32_t              				resvd3:1,                                conntout_intr:1,                                xtalkerr_intr:1,                                w0_arg_tout_intr:1,     /* Xbridge only */                                w0_recv_tout_intr:1,    /* Xbridge only */                                accerr_intr:1,                                enable_w0_tout_cntr:1,  /* Xbridge only */                                enable_watchdog:1,      /* Xbridge only */                                resvd1:24;    } xbw0_ctrlfield;} xbw0_ctrl_t;#elsetypedef union xbw0_ctrl_u {    xbowreg_t		    ctrlword;    struct {	uint32_t				resvd1:24,				enable_watchdog:1,	/* Xbridge only */				enable_w0_tout_cntr:1,	/* Xbridge only */				accerr_intr:1,				w0_recv_tout_intr:1,	/* Xbridge only */				w0_arg_tout_intr:1,	/* Xbridge only */				xtalkerr_intr:1,				conntout_intr:1,				resvd3:1;    } xbw0_ctrlfield;} xbw0_ctrl_t;#endif#ifdef LITTLE_ENDIANtypedef union xbow_linkctrl_u {    xbowreg_t               xbl_ctrlword;    struct {	uint32_t 		srcto_intr:1,                                maxto_intr:1,                                 rsvd3:1,                                trx_retry_intr:1, 

⌨️ 快捷键说明

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