10 #define PCI_DEV_REG1 0x40 11 #define PCI_PHY_COMA 0x8000000 12 #define PCI_VIO 0x2000000 14 #define PCI_DEV_REG2 0x44 15 #define PCI_VPD_ROM_SZ 7L<<14 16 #define PCI_REV_DESC 1<<2 18 #define DRV_NAME "skge" 19 #define DRV_VERSION "1.13" 20 #define PFX DRV_NAME " " 26 #define SKGE_RING_ALIGN 8 27 #define RX_BUF_SIZE 1536 28 #define PHY_RETRIES 1000 30 #define TX_RING_SIZE ( NUM_TX_DESC * sizeof ( struct skge_rx_desc ) ) 31 #define RX_RING_SIZE ( NUM_RX_DESC * sizeof ( struct skge_tx_desc ) ) 32 #define RING_SIZE ( TX_RING_SIZE + RX_RING_SIZE ) 34 #define SKGE_REG_SIZE 0x4000 36 #define SKGE_EEPROM_MAGIC 0x9933aabb 41 #define AUTONEG_DISABLE 0x00 42 #define AUTONEG_ENABLE 0x01 44 #define DUPLEX_HALF 0x00 45 #define DUPLEX_FULL 0x01 49 #define SPEED_1000 1000 51 #define ADVERTISED_10baseT_Half (1 << 0) 52 #define ADVERTISED_10baseT_Full (1 << 1) 53 #define ADVERTISED_100baseT_Half (1 << 2) 54 #define ADVERTISED_100baseT_Full (1 << 3) 55 #define ADVERTISED_1000baseT_Half (1 << 4) 56 #define ADVERTISED_1000baseT_Full (1 << 5) 58 #define SUPPORTED_10baseT_Half (1 << 0) 59 #define SUPPORTED_10baseT_Full (1 << 1) 60 #define SUPPORTED_100baseT_Half (1 << 2) 61 #define SUPPORTED_100baseT_Full (1 << 3) 62 #define SUPPORTED_1000baseT_Half (1 << 4) 63 #define SUPPORTED_1000baseT_Full (1 << 5) 64 #define SUPPORTED_Autoneg (1 << 6) 65 #define SUPPORTED_TP (1 << 7) 66 #define SUPPORTED_FIBRE (1 << 10) 70 #define PCI_STATUS_ERROR_BITS (PCI_STATUS_DETECTED_PARITY | \ 71 PCI_STATUS_SIG_SYSTEM_ERROR | \ 72 PCI_STATUS_REC_MASTER_ABORT | \ 73 PCI_STATUS_REC_TARGET_ABORT | \ 416 #define RAM_ADR_RAN 0x0007ffffL 439 #define SK_MAC_TO_53 72 440 #define SK_PKT_TO_53 0x2000 441 #define SK_PKT_TO_MAX 0xffff 442 #define SK_RI_TO_53 36 463 #define PA_ENA_TO_ALL (PA_ENA_TO_RX1 | PA_ENA_TO_RX2 |\ 464 PA_ENA_TO_TX1 | PA_ENA_TO_TX2) 473 #define TXA_MAX_VAL 0x00ffffffUL 534 #define Q_ADDR(reg, offs) (B8_Q_REGS + (reg) + (offs)) 590 #define RB_ADDR(offs, queue) ((u16)B16_RAM_REGS + (u16)(queue) + (offs)) 790 #define CSR_SET_RESET (CSR_DESC_SET | CSR_FIFO_SET | CSR_HPI_RST |\ 791 CSR_SV_RST | CSR_DREAD_RST | CSR_DWRITE_RST |\ 793 #define CSR_CLR_RESET (CSR_DESC_CLR | CSR_FIFO_CLR | CSR_HPI_RUN |\ 794 CSR_SV_RUN | CSR_DREAD_RUN | CSR_DWRITE_RUN |\ 820 #define RB_MSK 0x0007ffff 856 #define SK_XMIT_DUR 0x002faf08UL 857 #define SK_BLK_DUR 0x01dcd650UL 859 #define SK_DPOLL_DEF 0x00ee6b28UL 861 #define SK_DPOLL_MAX 0x00ffffffUL 864 #define SK_FACT_62 100 865 #define SK_FACT_53 85 866 #define SK_FACT_78 125 934 #define WOL_REGS(port, x) (x + (port)*0x80) 940 #define WOL_PATT_RAM_BASE(port) (WOL_PATT_RAM_1 + (port)*0x400) 1307 #define PHY_B_AS_PAUSE_MSK (PHY_B_AS_PRR | PHY_B_AS_PRT) 1328 #define PHY_B_DEF_MSK \ 1329 (~(PHY_B_IS_PSE | PHY_B_IS_AN_PR | PHY_B_IS_DUP_CHANGE | \ 1330 PHY_B_IS_LSP_CHANGE | PHY_B_IS_LST_CHANGE)) 1451 #define PHY_M_PS_PAUSE_MSK (PHY_M_PS_TX_P_EN | PHY_M_PS_RX_P_EN) 1504 #define PHY_M_EC_M_DSC(x) ((u16)(x)<<10) 1505 #define PHY_M_EC_S_DSC(x) ((u16)(x)<<8) 1506 #define PHY_M_EC_MAC_S(x) ((u16)(x)<<4) 1508 #define PHY_M_EC_M_DSC_2(x) ((u16)(x)<<9) 1527 #define PHY_M_LED_PULS_DUR(x) (((u16)(x)<<12) & PHY_M_LEDC_PULS_MSK) 1528 #define PHY_M_LED_BLINK_RT(x) (((u16)(x)<<8) & PHY_M_LEDC_BL_R_MSK) 1561 #define PHY_M_LED_MO_SGMII(x) ((x)<<14) 1563 #define PHY_M_LED_MO_DUP(x) ((x)<<10) 1564 #define PHY_M_LED_MO_10(x) ((x)<<8) 1565 #define PHY_M_LED_MO_100(x) ((x)<<6) 1566 #define PHY_M_LED_MO_1000(x) ((x)<<4) 1567 #define PHY_M_LED_MO_RX(x) ((x)<<2) 1568 #define PHY_M_LED_MO_TX(x) ((x)<<0) 1630 #define PHY_M_FELP_LED2_CTRL(x) (((x)<<8) & PHY_M_FELP_LED2_MSK) 1631 #define PHY_M_FELP_LED1_CTRL(x) (((x)<<4) & PHY_M_FELP_LED1_MSK) 1632 #define PHY_M_FELP_LED0_CTRL(x) (((x)<<0) & PHY_M_FELP_LED0_MSK) 1669 #define PHY_M_LEDC_LOS_CTRL(x) (((x)<<12) & PHY_M_LEDC_LOS_MSK) 1670 #define PHY_M_LEDC_INIT_CTRL(x) (((x)<<8) & PHY_M_LEDC_INIT_MSK) 1671 #define PHY_M_LEDC_STA1_CTRL(x) (((x)<<4) & PHY_M_LEDC_STA1_MSK) 1672 #define PHY_M_LEDC_STA0_CTRL(x) (((x)<<0) & PHY_M_LEDC_STA0_MSK) 1715 #define GM_MIB_CNT_BASE 0x0100 1716 #define GM_MIB_CNT_SIZE 44 1807 #define GM_GPCR_SPEED_1000 (GM_GPCR_GIGS_ENA | GM_GPCR_SPEED_100) 1808 #define GM_GPCR_AU_ALL_DIS (GM_GPCR_AU_DUP_DIS | GM_GPCR_AU_FCT_DIS|GM_GPCR_AU_SPD_DIS) 1818 #define TX_COL_THR(x) (((x)<<10) & GM_TXCR_COL_THR_MSK) 1819 #define TX_COL_DEF 0x04 1840 #define TX_JAM_LEN_VAL(x) (((x)<<14) & GM_TXPA_JAMLEN_MSK) 1841 #define TX_JAM_IPG_VAL(x) (((x)<<9) & GM_TXPA_JAMIPG_MSK) 1842 #define TX_IPG_JAM_DATA(x) (((x)<<4) & GM_TXPA_JAMDAT_MSK) 1854 #define DATA_BLIND_VAL(x) (((x)<<11) & GM_SMOD_DATABL_MSK) 1855 #define DATA_BLIND_DEF 0x04 1857 #define IPG_DATA_VAL(x) (x & GM_SMOD_IPG_MSK) 1858 #define IPG_DATA_DEF 0x1e 1869 #define GM_SMI_CT_PHY_AD(x) (((x)<<11) & GM_SMI_CT_PHY_A_MSK) 1870 #define GM_SMI_CT_REG_AD(x) (((x)<<6) & GM_SMI_CT_REG_A_MSK) 1988 #define GPC_HWCFG_GMII_COP (GPC_HWCFG_M_3|GPC_HWCFG_M_2 | GPC_HWCFG_M_1 | GPC_HWCFG_M_0) 1989 #define GPC_HWCFG_GMII_FIB (GPC_HWCFG_M_2 | GPC_HWCFG_M_1 | GPC_HWCFG_M_0) 1990 #define GPC_ANEG_ADV_ALL_M (GPC_ANEG_3 | GPC_ANEG_2 | GPC_ANEG_1 | GPC_ANEG_0) 1993 #define GPC_FRC10MBIT_HALF 0 1994 #define GPC_FRC10MBIT_FULL GPC_ANEG_0 1995 #define GPC_FRC100MBIT_HALF GPC_ANEG_1 1996 #define GPC_FRC100MBIT_FULL (GPC_ANEG_0 | GPC_ANEG_1) 2000 #define GPC_ADV_1000_HALF GPC_ANEG_2 2001 #define GPC_ADV_1000_FULL GPC_ANEG_3 2002 #define GPC_ADV_ALL (GPC_ANEG_2 | GPC_ANEG_3) 2006 #define GPC_FORCE_MASTER 0 2007 #define GPC_FORCE_SLAVE GPC_ANEG_0 2008 #define GPC_PREF_MASTER GPC_ANEG_1 2009 #define GPC_PREF_SLAVE (GPC_ANEG_1 | GPC_ANEG_0) 2021 #define GMAC_DEF_MSK (GM_IS_RX_FF_OR | GM_IS_TX_FF_UR) 2048 #define WOL_CTL_DEFAULT \ 2049 (WOL_CTL_DIS_PME_ON_LINK_CHG | \ 2050 WOL_CTL_DIS_PME_ON_PATTERN | \ 2051 WOL_CTL_DIS_PME_ON_MAGIC_PKT | \ 2052 WOL_CTL_DIS_LINK_CHG_UNIT | \ 2053 WOL_CTL_DIS_PATTERN_UNIT | \ 2054 WOL_CTL_DIS_MAGIC_PKT_UNIT) 2057 #define WOL_CTL_PATT_ENA(x) (1 << (x)) 2089 #define XM_EXM(reg) (XM_EXM_START + ((reg) << 3)) 2195 #define XM_RT_LIM_MSK 0x1f 2199 #define XM_STIME_MSK 0x7f 2203 #define XM_IPG_MSK 0xff 2264 #define XM_TX_WM_MSK 0x01ff 2269 #define XM_THR_MSK 0x03ff 2293 #define XM_RX_WM_MSK 0x03ff 2297 #define XM_DEV_OUI (0x00ffffffUL<<8) 2298 #define XM_DEV_REV (0x07L << 5) 2336 #define XM_PAUSE_MODE (XM_MD_SPOE_E | XM_MD_SPOL_I | XM_MD_SPOH_I) 2337 #define XM_DEF_MODE (XM_MD_RX_RUNT | XM_MD_RX_IRLE | XM_MD_RX_LONG |\ 2338 XM_MD_RX_CRCE | XM_MD_RX_ERR | XM_MD_CSA) 2386 #define XMR_DEF_MSK (XMR_OK_LO_OV | XMR_OK_HI_OV) 2420 #define XMT_DEF_MSK (XMT_OK_LO_OV | XMT_OK_HI_OV) 2548 #define SK_REG(port,reg) (((port)<<7)+(u16)(reg)) 2549 #define SK_XMAC_REG(port, reg) \ 2550 ((BASE_XMAC_1 + (port) * (BASE_XMAC_2 - BASE_XMAC_1)) | (reg) << 1) 2593 #define SK_GMAC_REG(port,reg) \ 2594 (BASE_GMAC_1 + (port) * (BASE_GMAC_2-BASE_GMAC_1) + (reg))
static u16 xm_read16(const struct skge_hw *hw, int port, int reg)
pseudo_bit_t hash[0x00010]
uint8_t readb(volatile uint8_t *io_addr)
Read byte from memory-mapped device.
static void xm_write16(const struct skge_hw *hw, int port, int r, u16 v)
static void gma_write16(const struct skge_hw *hw, int port, int r, u16 v)
struct net_device * dev[2]
static unsigned int unsigned int reg
static void xm_write32(const struct skge_hw *hw, int port, int r, u32 v)
uint16_t readw(volatile uint16_t *io_addr)
Read 16-bit word from memory-mapped device.
#define SK_XMAC_REG(port, reg)
uint32_t readl(volatile uint32_t *io_addr)
Read 32-bit dword from memory-mapped device.
#define SK_GMAC_REG(port, reg)
struct skge_element * next
static u32 gma_read32(const struct skge_hw *hw, int port, int reg)
void writeb(uint8_t data, volatile uint8_t *io_addr)
Write byte to memory-mapped device.
static u32 skge_read32(const struct skge_hw *hw, int reg)
enum pause_status flow_status
struct skge_element * start
static void xm_outhash(const struct skge_hw *hw, int port, int reg, const u8 *hash)
static u32 xm_read32(const struct skge_hw *hw, int port, int reg)
void writel(uint32_t data, volatile uint32_t *io_addr)
Write 32-bit dword to memory-mapped device.
static u8 skge_read8(const struct skge_hw *hw, int reg)
static void skge_write16(const struct skge_hw *hw, int reg, u16 val)