sky2.h

来自「linux 内核源代码」· C头文件 代码 · 共 1,627 行 · 第 1/5 页

H
1,627
字号
	Y2_IS_PORT_2	= Y2_IS_IRQ_PHY2 | Y2_IS_IRQ_MAC2			  | Y2_IS_CHK_TXA2 | Y2_IS_CHK_RX2,	Y2_IS_ERROR     = Y2_IS_HW_ERR |			  Y2_IS_IRQ_MAC1 | Y2_IS_CHK_TXA1 | Y2_IS_CHK_RX1 |			  Y2_IS_IRQ_MAC2 | Y2_IS_CHK_TXA2 | Y2_IS_CHK_RX2,};/*	B2_IRQM_HWE_MSK	32 bit	IRQ Moderation HW Error Mask */enum {	IS_ERR_MSK	= 0x00003fff,/* 		All Error bits */	IS_IRQ_TIST_OV	= 1<<13, /* Time Stamp Timer Overflow (YUKON only) */	IS_IRQ_SENSOR	= 1<<12, /* IRQ from Sensor (YUKON only) */	IS_IRQ_MST_ERR	= 1<<11, /* IRQ master error detected */	IS_IRQ_STAT	= 1<<10, /* IRQ status exception */	IS_NO_STAT_M1	= 1<<9,	/* No Rx Status from MAC 1 */	IS_NO_STAT_M2	= 1<<8,	/* No Rx Status from MAC 2 */	IS_NO_TIST_M1	= 1<<7,	/* No Time Stamp from MAC 1 */	IS_NO_TIST_M2	= 1<<6,	/* No Time Stamp from MAC 2 */	IS_RAM_RD_PAR	= 1<<5,	/* RAM Read  Parity Error */	IS_RAM_WR_PAR	= 1<<4,	/* RAM Write Parity Error */	IS_M1_PAR_ERR	= 1<<3,	/* MAC 1 Parity Error */	IS_M2_PAR_ERR	= 1<<2,	/* MAC 2 Parity Error */	IS_R1_PAR_ERR	= 1<<1,	/* Queue R1 Parity Error */	IS_R2_PAR_ERR	= 1<<0,	/* Queue R2 Parity Error */};/* Hardware error interrupt mask for Yukon 2 */enum {	Y2_IS_TIST_OV	= 1<<29,/* Time Stamp Timer overflow interrupt */	Y2_IS_SENSOR	= 1<<28, /* Sensor interrupt */	Y2_IS_MST_ERR	= 1<<27, /* Master error interrupt */	Y2_IS_IRQ_STAT	= 1<<26, /* Status exception interrupt */	Y2_IS_PCI_EXP	= 1<<25, /* PCI-Express interrupt */	Y2_IS_PCI_NEXP	= 1<<24, /* PCI-Express error similar to PCI error */						/* Link 2 */	Y2_IS_PAR_RD2	= 1<<13, /* Read RAM parity error interrupt */	Y2_IS_PAR_WR2	= 1<<12, /* Write RAM parity error interrupt */	Y2_IS_PAR_MAC2	= 1<<11, /* MAC hardware fault interrupt */	Y2_IS_PAR_RX2	= 1<<10, /* Parity Error Rx Queue 2 */	Y2_IS_TCP_TXS2	= 1<<9, /* TCP length mismatch sync Tx queue IRQ */	Y2_IS_TCP_TXA2	= 1<<8, /* TCP length mismatch async Tx queue IRQ */						/* Link 1 */	Y2_IS_PAR_RD1	= 1<<5, /* Read RAM parity error interrupt */	Y2_IS_PAR_WR1	= 1<<4, /* Write RAM parity error interrupt */	Y2_IS_PAR_MAC1	= 1<<3, /* MAC hardware fault interrupt */	Y2_IS_PAR_RX1	= 1<<2, /* Parity Error Rx Queue 1 */	Y2_IS_TCP_TXS1	= 1<<1, /* TCP length mismatch sync Tx queue IRQ */	Y2_IS_TCP_TXA1	= 1<<0, /* TCP length mismatch async Tx queue IRQ */	Y2_HWE_L1_MASK	= Y2_IS_PAR_RD1 | Y2_IS_PAR_WR1 | Y2_IS_PAR_MAC1 |			  Y2_IS_PAR_RX1 | Y2_IS_TCP_TXS1| Y2_IS_TCP_TXA1,	Y2_HWE_L2_MASK	= Y2_IS_PAR_RD2 | Y2_IS_PAR_WR2 | Y2_IS_PAR_MAC2 |			  Y2_IS_PAR_RX2 | Y2_IS_TCP_TXS2| Y2_IS_TCP_TXA2,	Y2_HWE_ALL_MASK	= Y2_IS_TIST_OV | Y2_IS_MST_ERR | Y2_IS_IRQ_STAT |			  Y2_HWE_L1_MASK | Y2_HWE_L2_MASK,};/*	B28_DPT_CTRL	 8 bit	Descriptor Poll Timer Ctrl Reg */enum {	DPT_START	= 1<<1,	DPT_STOP	= 1<<0,};/*	B2_TST_CTRL1	 8 bit	Test Control Register 1 */enum {	TST_FRC_DPERR_MR = 1<<7, /* force DATAPERR on MST RD */	TST_FRC_DPERR_MW = 1<<6, /* force DATAPERR on MST WR */	TST_FRC_DPERR_TR = 1<<5, /* force DATAPERR on TRG RD */	TST_FRC_DPERR_TW = 1<<4, /* force DATAPERR on TRG WR */	TST_FRC_APERR_M	 = 1<<3, /* force ADDRPERR on MST */	TST_FRC_APERR_T	 = 1<<2, /* force ADDRPERR on TRG */	TST_CFG_WRITE_ON = 1<<1, /* Enable  Config Reg WR */	TST_CFG_WRITE_OFF= 1<<0, /* Disable Config Reg WR */};/* 	B2_GPIO */enum {	GLB_GPIO_CLK_DEB_ENA = 1<<31,	/* Clock Debug Enable */	GLB_GPIO_CLK_DBG_MSK = 0xf<<26, /* Clock Debug */	GLB_GPIO_INT_RST_D3_DIS = 1<<15, /* Disable Internal Reset After D3 to D0 */	GLB_GPIO_LED_PAD_SPEED_UP = 1<<14, /* LED PAD Speed Up */	GLB_GPIO_STAT_RACE_DIS	= 1<<13, /* Status Race Disable */	GLB_GPIO_TEST_SEL_MSK	= 3<<11, /* Testmode Select */	GLB_GPIO_TEST_SEL_BASE	= 1<<11,	GLB_GPIO_RAND_ENA	= 1<<10, /* Random Enable */	GLB_GPIO_RAND_BIT_1	= 1<<9,  /* Random Bit 1 */};/*	B2_MAC_CFG		 8 bit	MAC Configuration / Chip Revision */enum {	CFG_CHIP_R_MSK	  = 0xf<<4,	/* Bit 7.. 4: Chip Revision */					/* Bit 3.. 2:	reserved */	CFG_DIS_M2_CLK	  = 1<<1,	/* Disable Clock for 2nd MAC */	CFG_SNG_MAC	  = 1<<0,	/* MAC Config: 0=2 MACs / 1=1 MAC*/};/*	B2_CHIP_ID		 8 bit 	Chip Identification Number */enum {	CHIP_ID_YUKON_XL   = 0xb3, /* Chip ID for YUKON-2 XL */	CHIP_ID_YUKON_EC_U = 0xb4, /* Chip ID for YUKON-2 EC Ultra */	CHIP_ID_YUKON_EX   = 0xb5, /* Chip ID for YUKON-2 Extreme */	CHIP_ID_YUKON_EC   = 0xb6, /* Chip ID for YUKON-2 EC */ 	CHIP_ID_YUKON_FE   = 0xb7, /* Chip ID for YUKON-2 FE */ 	CHIP_ID_YUKON_FE_P = 0xb8, /* Chip ID for YUKON-2 FE+ */};enum yukon_ec_rev {	CHIP_REV_YU_EC_A1    = 0,  /* Chip Rev. for Yukon-EC A1/A0 */	CHIP_REV_YU_EC_A2    = 1,  /* Chip Rev. for Yukon-EC A2 */	CHIP_REV_YU_EC_A3    = 2,  /* Chip Rev. for Yukon-EC A3 */};enum yukon_ec_u_rev {	CHIP_REV_YU_EC_U_A0  = 1,	CHIP_REV_YU_EC_U_A1  = 2,	CHIP_REV_YU_EC_U_B0  = 3,};enum yukon_fe_rev {	CHIP_REV_YU_FE_A1    = 1,	CHIP_REV_YU_FE_A2    = 2,};enum yukon_fe_p_rev {	CHIP_REV_YU_FE2_A0   = 0,};enum yukon_ex_rev {	CHIP_REV_YU_EX_A0    = 1,	CHIP_REV_YU_EX_B0    = 2,};/*	B2_Y2_CLK_GATE	 8 bit	Clock Gating (Yukon-2 only) */enum {	Y2_STATUS_LNK2_INAC	= 1<<7, /* Status Link 2 inactive (0 = active) */	Y2_CLK_GAT_LNK2_DIS	= 1<<6, /* Disable clock gating Link 2 */	Y2_COR_CLK_LNK2_DIS	= 1<<5, /* Disable Core clock Link 2 */	Y2_PCI_CLK_LNK2_DIS	= 1<<4, /* Disable PCI clock Link 2 */	Y2_STATUS_LNK1_INAC	= 1<<3, /* Status Link 1 inactive (0 = active) */	Y2_CLK_GAT_LNK1_DIS	= 1<<2, /* Disable clock gating Link 1 */	Y2_COR_CLK_LNK1_DIS	= 1<<1, /* Disable Core clock Link 1 */	Y2_PCI_CLK_LNK1_DIS	= 1<<0, /* Disable PCI clock Link 1 */};/*	B2_Y2_HW_RES	8 bit	HW Resources (Yukon-2 only) */enum {	CFG_LED_MODE_MSK	= 7<<2,	/* Bit  4.. 2:	LED Mode Mask */	CFG_LINK_2_AVAIL	= 1<<1,	/* Link 2 available */	CFG_LINK_1_AVAIL	= 1<<0,	/* Link 1 available */};#define CFG_LED_MODE(x)		(((x) & CFG_LED_MODE_MSK) >> 2)#define CFG_DUAL_MAC_MSK	(CFG_LINK_2_AVAIL | CFG_LINK_1_AVAIL)/* B2_Y2_CLK_CTRL	32 bit	Clock Frequency Control Register (Yukon-2/EC) */enum {	Y2_CLK_DIV_VAL_MSK	= 0xff<<16,/* Bit 23..16: Clock Divisor Value */#define	Y2_CLK_DIV_VAL(x)	(((x)<<16) & Y2_CLK_DIV_VAL_MSK)	Y2_CLK_DIV_VAL2_MSK	= 7<<21,   /* Bit 23..21: Clock Divisor Value */	Y2_CLK_SELECT2_MSK	= 0x1f<<16,/* Bit 20..16: Clock Select */#define Y2_CLK_DIV_VAL_2(x)	(((x)<<21) & Y2_CLK_DIV_VAL2_MSK)#define Y2_CLK_SEL_VAL_2(x)	(((x)<<16) & Y2_CLK_SELECT2_MSK)	Y2_CLK_DIV_ENA		= 1<<1, /* Enable  Core Clock Division */	Y2_CLK_DIV_DIS		= 1<<0,	/* Disable Core Clock Division */};/*	B2_TI_CTRL		 8 bit	Timer control *//*	B2_IRQM_CTRL	 8 bit	IRQ Moderation Timer Control */enum {	TIM_START	= 1<<2,	/* Start Timer */	TIM_STOP	= 1<<1,	/* Stop  Timer */	TIM_CLR_IRQ	= 1<<0,	/* Clear Timer IRQ (!IRQM) */};/*	B2_TI_TEST		 8 Bit	Timer Test *//*	B2_IRQM_TEST	 8 bit	IRQ Moderation Timer Test *//*	B28_DPT_TST		 8 bit	Descriptor Poll Timer Test Reg */enum {	TIM_T_ON	= 1<<2,	/* Test mode on */	TIM_T_OFF	= 1<<1,	/* Test mode off */	TIM_T_STEP	= 1<<0,	/* Test step */};/*	B3_RAM_ADDR		32 bit	RAM Address, to read or write */					/* Bit 31..19:	reserved */#define RAM_ADR_RAN	0x0007ffffL	/* Bit 18.. 0:	RAM Address Range *//* RAM Interface Registers *//*	B3_RI_CTRL		16 bit	RAM Interface Control Register */enum {	RI_CLR_RD_PERR	= 1<<9,	/* Clear IRQ RAM Read Parity Err */	RI_CLR_WR_PERR	= 1<<8,	/* Clear IRQ RAM Write Parity Err*/	RI_RST_CLR	= 1<<1,	/* Clear RAM Interface Reset */	RI_RST_SET	= 1<<0,	/* Set   RAM Interface Reset */};#define SK_RI_TO_53	36		/* RAM interface timeout *//* Port related registers FIFO, and Arbiter */#define SK_REG(port,reg)	(((port)<<7)+(reg))/* Transmit Arbiter Registers MAC 1 and 2, use SK_REG() to access *//*	TXA_ITI_INI		32 bit	Tx Arb Interval Timer Init Val *//*	TXA_ITI_VAL		32 bit	Tx Arb Interval Timer Value *//*	TXA_LIM_INI		32 bit	Tx Arb Limit Counter Init Val *//*	TXA_LIM_VAL		32 bit	Tx Arb Limit Counter Value */#define TXA_MAX_VAL	0x00ffffffUL	/* Bit 23.. 0:	Max TXA Timer/Cnt Val *//*	TXA_CTRL		 8 bit	Tx Arbiter Control Register */enum {	TXA_ENA_FSYNC	= 1<<7,	/* Enable  force of sync Tx queue */	TXA_DIS_FSYNC	= 1<<6,	/* Disable force of sync Tx queue */	TXA_ENA_ALLOC	= 1<<5,	/* Enable  alloc of free bandwidth */	TXA_DIS_ALLOC	= 1<<4,	/* Disable alloc of free bandwidth */	TXA_START_RC	= 1<<3,	/* Start sync Rate Control */	TXA_STOP_RC	= 1<<2,	/* Stop  sync Rate Control */	TXA_ENA_ARB	= 1<<1,	/* Enable  Tx Arbiter */	TXA_DIS_ARB	= 1<<0,	/* Disable Tx Arbiter */};/* *	Bank 4 - 5 *//* Transmit Arbiter Registers MAC 1 and 2, use SK_REG() to access */enum {	TXA_ITI_INI	= 0x0200,/* 32 bit	Tx Arb Interval Timer Init Val*/	TXA_ITI_VAL	= 0x0204,/* 32 bit	Tx Arb Interval Timer Value */	TXA_LIM_INI	= 0x0208,/* 32 bit	Tx Arb Limit Counter Init Val */	TXA_LIM_VAL	= 0x020c,/* 32 bit	Tx Arb Limit Counter Value */	TXA_CTRL	= 0x0210,/*  8 bit	Tx Arbiter Control Register */	TXA_TEST	= 0x0211,/*  8 bit	Tx Arbiter Test Register */	TXA_STAT	= 0x0212,/*  8 bit	Tx Arbiter Status Register */};enum {	B6_EXT_REG	= 0x0300,/* External registers (GENESIS only) */	B7_CFG_SPC	= 0x0380,/* copy of the Configuration register */	B8_RQ1_REGS	= 0x0400,/* Receive Queue 1 */	B8_RQ2_REGS	= 0x0480,/* Receive Queue 2 */	B8_TS1_REGS	= 0x0600,/* Transmit sync queue 1 */	B8_TA1_REGS	= 0x0680,/* Transmit async queue 1 */	B8_TS2_REGS	= 0x0700,/* Transmit sync queue 2 */	B8_TA2_REGS	= 0x0780,/* Transmit sync queue 2 */	B16_RAM_REGS	= 0x0800,/* RAM Buffer Registers */};/* Queue Register Offsets, use Q_ADDR() to access */enum {	B8_Q_REGS = 0x0400, /* base of Queue registers */	Q_D	= 0x00,	/* 8*32	bit	Current Descriptor */	Q_VLAN  = 0x20, /* 16 bit	Current VLAN Tag */	Q_DONE	= 0x24,	/* 16 bit	Done Index */	Q_AC_L	= 0x28,	/* 32 bit	Current Address Counter Low dWord */	Q_AC_H	= 0x2c,	/* 32 bit	Current Address Counter High dWord */	Q_BC	= 0x30,	/* 32 bit	Current Byte Counter */	Q_CSR	= 0x34,	/* 32 bit	BMU Control/Status Register */	Q_TEST	= 0x38,	/* 32 bit	Test/Control Register *//* Yukon-2 */	Q_WM	= 0x40,	/* 16 bit	FIFO Watermark */	Q_AL	= 0x42,	/*  8 bit	FIFO Alignment */	Q_RSP	= 0x44,	/* 16 bit	FIFO Read Shadow Pointer */	Q_RSL	= 0x46,	/*  8 bit	FIFO Read Shadow Level */	Q_RP	= 0x48,	/*  8 bit	FIFO Read Pointer */	Q_RL	= 0x4a,	/*  8 bit	FIFO Read Level */	Q_WP	= 0x4c,	/*  8 bit	FIFO Write Pointer */	Q_WSP	= 0x4d,	/*  8 bit	FIFO Write Shadow Pointer */	Q_WL	= 0x4e,	/*  8 bit	FIFO Write Level */	Q_WSL	= 0x4f,	/*  8 bit	FIFO Write Shadow Level */};#define Q_ADDR(reg, offs) (B8_Q_REGS + (reg) + (offs))/*	Q_TEST				32 bit	Test Register */enum {	/* Transmit */	F_TX_CHK_AUTO_OFF = 1<<31, /* Tx checksum auto calc off (Yukon EX) */	F_TX_CHK_AUTO_ON  = 1<<30, /* Tx checksum auto calc off (Yukon EX) */	/* Receive */	F_M_RX_RAM_DIS	= 1<<24, /* MAC Rx RAM Read Port disable */	/* Hardware testbits not used */};/* Queue Prefetch Unit Offsets, use Y2_QADDR() to address (Yukon-2 only)*/enum {	Y2_B8_PREF_REGS		= 0x0450,	PREF_UNIT_CTRL		= 0x00,	/* 32 bit	Control register */	PREF_UNIT_LAST_IDX	= 0x04,	/* 16 bit	Last Index */	PREF_UNIT_ADDR_LO	= 0x08,	/* 32 bit	List start addr, low part */	PREF_UNIT_ADDR_HI	= 0x0c,	/* 32 bit	List start addr, high part*/	PREF_UNIT_GET_IDX	= 0x10,	/* 16 bit	Get Index */	PREF_UNIT_PUT_IDX	= 0x14,	/* 16 bit	Put Index */	PREF_UNIT_FIFO_WP	= 0x20,	/*  8 bit	FIFO write pointer */	PREF_UNIT_FIFO_RP	= 0x24,	/*  8 bit	FIFO read pointer */	PREF_UNIT_FIFO_WM	= 0x28,	/*  8 bit	FIFO watermark */	PREF_UNIT_FIFO_LEV	= 0x2c,	/*  8 bit	FIFO level */	PREF_UNIT_MASK_IDX	= 0x0fff,};#define Y2_QADDR(q,reg)		(Y2_B8_PREF_REGS + (q) + (reg))/* RAM Buffer Register Offsets */enum {	RB_START	= 0x00,/* 32 bit	RAM Buffer Start Address */	RB_END	= 0x04,/* 32 bit	RAM Buffer End Address */	RB_WP	= 0x08,/* 32 bit	RAM Buffer Write Pointer */	RB_RP	= 0x0c,/* 32 bit	RAM Buffer Read Pointer */	RB_RX_UTPP	= 0x10,/* 32 bit	Rx Upper Threshold, Pause Packet */	RB_RX_LTPP	= 0x14,/* 32 bit	Rx Lower Threshold, Pause Packet */	RB_RX_UTHP	= 0x18,/* 32 bit	Rx Upper Threshold, High Prio */	RB_RX_LTHP	= 0x1c,/* 32 bit	Rx Lower Threshold, High Prio */	/* 0x10 - 0x1f:	reserved at Tx RAM Buffer Registers */	RB_PC	= 0x20,/* 32 bit	RAM Buffer Packet Counter */	RB_LEV	= 0x24,/* 32 bit	RAM Buffer Level Register */	RB_CTRL	= 0x28,/* 32 bit	RAM Buffer Control Register */	RB_TST1	= 0x29,/*  8 bit	RAM Buffer Test Register 1 */	RB_TST2	= 0x2a,/*  8 bit	RAM Buffer Test Register 2 */};/* Receive and Transmit Queues */

⌨️ 快捷键说明

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