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 + -
显示快捷键?