iPXE
|
#include <stdint.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <ipxe/netdevice.h>
#include <ipxe/ethernet.h>
#include <ipxe/if_ether.h>
#include <ipxe/iobuf.h>
#include <ipxe/malloc.h>
#include <ipxe/pci.h>
#include "skge.h"
Go to the source code of this file.
Enumerations | |
enum | led_mode { LED_MODE_OFF, LED_MODE_ON, LED_MODE_TST, MO_LED_NORM = 0, MO_LED_BLINK = 1, MO_LED_OFF = 2, MO_LED_ON = 3 } |
Functions | |
FILE_LICENCE (GPL2_ONLY) | |
static int | skge_up (struct net_device *dev) |
static void | skge_down (struct net_device *dev) |
static void | skge_tx_clean (struct net_device *dev) |
static int | xm_phy_write (struct skge_hw *hw, int port, u16 reg, u16 val) |
static int | gm_phy_write (struct skge_hw *hw, int port, u16 reg, u16 val) |
static void | yukon_init (struct skge_hw *hw, int port) |
static void | genesis_mac_init (struct skge_hw *hw, int port) |
static void | genesis_link_up (struct skge_port *skge) |
static void | skge_phyirq (struct skge_hw *hw) |
static void | skge_poll (struct net_device *dev) |
static int | skge_xmit_frame (struct net_device *dev, struct io_buffer *iob) |
static void | skge_net_irq (struct net_device *dev, int enable) |
static void | skge_rx_refill (struct net_device *dev) |
static u32 | skge_supported_modes (const struct skge_hw *hw) |
static u32 | hwkhz (const struct skge_hw *hw) |
static u32 | skge_usecs2clk (const struct skge_hw *hw, u32 usec) |
static void | skge_led (struct skge_port *skge, enum led_mode mode) |
static int | skge_ring_alloc (struct skge_ring *ring, void *vaddr, u32 base, size_t num) |
static void | skge_rx_setup (struct skge_port *skge __unused, struct skge_element *e, struct io_buffer *iob, unsigned int bufsize) |
static void | skge_rx_reuse (struct skge_element *e, unsigned int size) |
static void | skge_rx_clean (struct skge_port *skge) |
static void | skge_link_up (struct skge_port *skge) |
static void | skge_link_down (struct skge_port *skge) |
static void | xm_link_down (struct skge_hw *hw, int port) |
static int | __xm_phy_read (struct skge_hw *hw, int port, u16 reg, u16 *val) |
static u16 | xm_phy_read (struct skge_hw *hw, int port, u16 reg) |
static void | genesis_init (struct skge_hw *hw) |
static void | genesis_reset (struct skge_hw *hw, int port) |
static void | bcom_check_link (struct skge_hw *hw, int port) |
static void | bcom_phy_init (struct skge_port *skge) |
static void | xm_phy_init (struct skge_port *skge) |
static int | xm_check_link (struct net_device *dev) |
static void | xm_link_timer (struct skge_port *skge) |
static void | genesis_stop (struct skge_port *skge) |
static void | bcom_phy_intr (struct skge_port *skge) |
static int | __gm_phy_read (struct skge_hw *hw, int port, u16 reg, u16 *val) |
static u16 | gm_phy_read (struct skge_hw *hw, int port, u16 reg) |
static void | yukon_reset (struct skge_hw *hw, int port) |
static int | is_yukon_lite_a0 (struct skge_hw *hw) |
static void | yukon_mac_init (struct skge_hw *hw, int port) |
static void | yukon_suspend (struct skge_hw *hw, int port) |
static void | yukon_stop (struct skge_port *skge) |
static u16 | yukon_speed (const struct skge_hw *hw __unused, u16 aux) |
static void | yukon_link_up (struct skge_port *skge) |
static void | yukon_link_down (struct skge_port *skge) |
static void | yukon_phy_intr (struct skge_port *skge) |
static void | skge_ramset (struct skge_hw *hw, u16 q, u32 start, size_t len) |
static void | skge_qset (struct skge_port *skge, u16 q, const struct skge_element *e) |
void | skge_free (struct net_device *dev) |
static void | skge_rx_stop (struct skge_hw *hw, int port) |
static int | skge_tx_avail (const struct skge_ring *ring) |
static u16 | phy_length (const struct skge_hw *hw, u32 status) |
static int | bad_phy_status (const struct skge_hw *hw, u32 status) |
static void | skge_tx_done (struct net_device *dev) |
static void | skge_rx_done (struct net_device *dev) |
static const char * | skge_board_name (const struct skge_hw *hw) |
static int | skge_reset (struct skge_hw *hw) |
static struct net_device * | skge_devinit (struct skge_hw *hw, int port, int highmem __unused) |
static void | skge_show_addr (struct net_device *dev) |
static int | skge_probe (struct pci_device *pdev) |
static void | skge_remove (struct pci_device *pdev) |
Variables | |
static struct pci_device_id | skge_id_table [] |
static struct net_device_operations | skge_operations |
static const int | txqaddr [] = { Q_XA1, Q_XA2 } |
static const int | rxqaddr [] = { Q_R1, Q_R2 } |
static const u32 | portmask [] = { IS_PORT_1, IS_PORT_2 } |
static const u16 | phy_pause_map [] |
static const u16 | fiber_pause_map [] |
struct { | |
u8 id | |
const char * name | |
} | skge_chips [] |
struct pci_driver skge_driver | __pci_driver |
enum led_mode |
Enumerator | |
---|---|
LED_MODE_OFF | |
LED_MODE_ON | |
LED_MODE_TST | |
MO_LED_NORM | |
MO_LED_BLINK | |
MO_LED_OFF | |
MO_LED_ON |
FILE_LICENCE | ( | GPL2_ONLY | ) |
|
static |
Definition at line 1707 of file skge.c.
References assert(), B0_IMSK, CHIP_ID_GENESIS, CSR_IRQ_CL_F, CSR_START, DBG, DBG2, skge_hw::dev, skge_port::dma, EINVAL, ENOMEM, genesis_mac_init(), skge_port::hw, LED_MODE_ON, malloc_phys(), skge_port::mem, memset(), net_device::name, NUM_RX_DESC, NUM_TX_DESC, PFX, port, skge_port::port, portmask, net_device::priv, Q_ADDR, Q_CSR, RING_SIZE, skge_port::rx_ring, RX_RING_SIZE, rxqaddr, skge_free(), skge_led(), skge_qset(), skge_ramset(), SKGE_RING_ALIGN, skge_ring_alloc(), skge_rx_clean(), skge_rx_refill(), skge_write32(), skge_write8(), skge_ring::to_clean, skge_ring::to_use, skge_port::tx_ring, txqaddr, virt_to_bus(), wmb(), and yukon_mac_init().
|
static |
Definition at line 1790 of file skge.c.
References B0_IMSK, CHIP_ID_GENESIS, CSR_SET_RESET, CSR_STOP, DBG2, skge_hw::dev, genesis_stop(), GMF_RST_SET, skge_port::hw, LED_MODE_OFF, LED_OFF, LNK_LED_REG, skge_port::mem, MFF_RST_SET, net_device::name, netdev_link_down(), NULL, PFX, port, skge_port::port, portmask, net_device::priv, Q_ADDR, Q_CSR, Q_XA1, Q_XA2, RB_ADDR, RB_CTRL, RB_DIS_OP_MD, RB_RST_SET, RX_GMF_CTRL_T, RX_MFF_CTRL2, SK_PHY_XMAC, SK_REG, skge_free(), skge_led(), skge_rx_clean(), skge_rx_stop(), skge_tx_clean(), skge_write32(), skge_write8(), TX_GMF_CTRL_T, TX_MFF_CTRL2, TXA_CTRL, TXA_DIS_ALLOC, TXA_DIS_FSYNC, TXA_ITI_INI, TXA_LIM_INI, TXA_STOP_RC, txqaddr, skge_port::use_xm_link_timer, and yukon_stop().
|
static |
Definition at line 1909 of file skge.c.
References skge_tx_desc::control, skge_element::desc, skge_element::next, net_device::priv, skge_ring::to_clean, skge_ring::to_use, and skge_port::tx_ring.
Referenced by skge_down().
Definition at line 458 of file skge.c.
References EIO, ETIMEDOUT, PHY_RETRIES, port, reg, udelay(), val, XM_MMU_CMD, XM_MMU_PHY_BUSY, XM_PHY_ADDR, XM_PHY_DATA, xm_read16(), and xm_write16().
Referenced by bcom_phy_init(), bcom_phy_intr(), genesis_link_up(), skge_led(), and xm_phy_init().
Definition at line 1159 of file skge.c.
References DBG, EIO, GM_SMI_CT_BUSY, GM_SMI_CT_PHY_AD, GM_SMI_CT_REG_AD, GM_SMI_CTRL, GM_SMI_DATA, gma_read16(), gma_write16(), PFX, PHY_RETRIES, port, reg, udelay(), and val.
Referenced by skge_led(), yukon_init(), yukon_link_down(), yukon_link_up(), yukon_reset(), and yukon_suspend().
|
static |
Definition at line 1210 of file skge.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, skge_port::advertising, skge_port::autoneg, AUTONEG_DISABLE, AUTONEG_ENABLE, ctrl, skge_port::duplex, DUPLEX_FULL, fiber_pause_map, skge_port::flow_control, gm_phy_read(), gm_phy_write(), MAC_TX_CLK_25_MHZ, PHY_AN_CSMA, PHY_CT_ANE, PHY_CT_DUP_MD, PHY_CT_RE_CFG, PHY_CT_RESET, PHY_CT_SP100, PHY_CT_SP1000, PHY_M_1000C_AFD, PHY_M_1000C_AHD, PHY_M_1000C_MSE, PHY_M_AN_1000X_AFD, PHY_M_AN_1000X_AHD, PHY_M_AN_100_FD, PHY_M_AN_100_HD, PHY_M_AN_10_FD, PHY_M_AN_10_HD, PHY_M_EC_M_DSC, PHY_M_EC_M_DSC_MSK, PHY_M_EC_MAC_S, PHY_M_EC_MAC_S_MSK, PHY_M_EC_S_DSC, PHY_M_EC_S_DSC_MSK, PHY_M_IS_AN_MSK, PHY_M_IS_DEF_MSK, PHY_MARV_1000T_CTRL, PHY_MARV_AUNE_ADV, PHY_MARV_CTRL, PHY_MARV_EXT_CTRL, PHY_MARV_INT_MASK, phy_pause_map, port, skge_port::speed, SPEED_100, and SPEED_1000.
Referenced by yukon_link_down(), and yukon_mac_init().
|
static |
Definition at line 852 of file skge.c.
References B2_GP_IO, B3_MA_RCINI_RX1, B3_MA_RCINI_RX2, B3_MA_RCINI_TX1, B3_MA_RCINI_TX2, B3_MA_TO_CTRL, B3_MA_TOINI_RX1, B3_MA_TOINI_RX2, B3_MA_TOINI_TX1, B3_MA_TOINI_TX2, B3_PA_CTRL, bcom_check_link(), bcom_phy_init(), DBG, net_device::dev, skge_port::duplex, DUPLEX_HALF, GP_DIR_0, GP_DIR_2, GP_IO_0, GP_IO_2, net_device::ll_addr, MA_RST_CLR, MFF_CLR_MAC_RST, MFF_ENA_OP_MD, MFF_ENA_TIM_PAT, MFF_RST_CLR, MFF_SET_MAC_RST, MFF_TX_CTRL_DEF, net_device::name, PA_ENA_TO_TX1, PA_ENA_TO_TX2, PFX, port, net_device::priv, r, RX_MFF_CTRL1, RX_MFF_CTRL2, SK_PHY_BCOM, SK_PHY_XMAC, SK_REG, skge_read16(), skge_read32(), skge_write16(), skge_write32(), skge_write8(), TX_MFF_CTRL1, TX_MFF_CTRL2, udelay(), XM_DEF_MODE, XM_EXM, XM_HW_CFG, XM_HW_GMII_MD, XM_MODE, xm_outaddr(), xm_phy_init(), XM_RX_CMD, XM_RX_DIS_CEXT, XM_RX_EV_MSK, XM_RX_HI_WM, XM_RX_LENERR_OK, XM_RX_STRIP_FCS, XM_SA, XM_SC_CLR_RXC, XM_SC_CLR_TXC, XM_STAT_CMD, XM_TX_AUTO_PAD, XM_TX_CMD, XM_TX_EV_MSK, XM_TX_THR, xm_write16(), xm_write32(), XMR_DEF_MSK, and XMT_DEF_MSK.
Referenced by skge_up().
|
static |
Definition at line 1045 of file skge.c.
References cmd, skge_port::duplex, DUPLEX_FULL, FLOW_STAT_LOC_SEND, FLOW_STAT_NONE, FLOW_STAT_SYMMETRIC, skge_port::flow_status, skge_port::hw, MFF_DIS_PAUSE, MFF_ENA_PAUSE, PHY_B_AC_DIS_PM, PHY_B_DEF_MSK, PHY_BCOM_AUX_CTRL, PHY_BCOM_INT_MASK, port, skge_port::port, RX_MFF_CTRL1, SK_PHY_BCOM, SK_PHY_XMAC, SK_REG, skge_link_up(), skge_write16(), XM_IMSK, XM_IS_TXF_UR, XM_ISRC, XM_MAC_PTIME, XM_MMU_CMD, XM_MMU_ENA_RX, XM_MMU_ENA_TX, XM_MMU_GMII_FD, XM_MMU_IGN_PF, XM_MODE, XM_PAUSE_MODE, xm_phy_read(), xm_phy_write(), xm_read16(), xm_read32(), xm_write16(), and xm_write32().
Referenced by bcom_check_link(), and xm_check_link().
|
static |
Definition at line 2082 of file skge.c.
References B0_IMSK, bcom_phy_intr(), CHIP_ID_GENESIS, net_device::dev, IS_EXT_REG, port, net_device::priv, SK_PHY_BCOM, skge_read32(), skge_write32(), and yukon_phy_intr().
Referenced by skge_poll().
|
static |
Definition at line 2051 of file skge.c.
References B0_IMSK, B0_SP_ISRC, CSR_IRQ_CL_F, CSR_START, skge_hw::dev, skge_port::hw, IS_EXT_REG, skge_port::port, net_device::priv, Q_ADDR, Q_CSR, rxqaddr, skge_phyirq(), skge_read32(), skge_rx_done(), skge_tx_done(), skge_write8(), status, skge_port::use_xm_link_timer, wmb(), and xm_link_timer().
|
static |
Definition at line 1863 of file skge.c.
References assert(), BMU_CHECK, BMU_EOF, BMU_IRQ_EOF, BMU_OWN, BMU_STF, BMU_SW, control, skge_tx_desc::control, CSR_START, io_buffer::data, DBG, DBGIO, skge_element::desc, skge_tx_desc::dma_hi, skge_tx_desc::dma_lo, EBUSY, skge_port::hw, skge_element::iob, iob_len(), len, map, net_device::name, skge_element::next, PFX, skge_port::port, net_device::priv, Q_ADDR, Q_CSR, skge_tx_avail(), skge_write8(), skge_ring::start, skge_ring::to_use, skge_port::tx_ring, txqaddr, virt_to_bus(), and wmb().
|
static |
Definition at line 2448 of file skge.c.
References B0_IMSK, skge_port::hw, skge_port::port, portmask, net_device::priv, and skge_write32().
|
static |
Definition at line 1962 of file skge.c.
References alloc_iob(), BMU_OWN, control, skge_rx_desc::control, DBG, DBG2, skge_element::desc, skge_element::iob, skge_element::next, NULL, NUM_RX_DESC, net_device::priv, RX_BUF_SIZE, skge_port::rx_ring, skge_rx_setup(), skge_ring::start, and skge_ring::to_clean.
Referenced by skge_rx_done(), and skge_up().
Definition at line 92 of file skge.c.
References CHIP_ID_GENESIS, CHIP_ID_YUKON, supported, SUPPORTED_1000baseT_Full, SUPPORTED_1000baseT_Half, SUPPORTED_100baseT_Full, SUPPORTED_100baseT_Half, SUPPORTED_10baseT_Full, SUPPORTED_10baseT_Half, SUPPORTED_Autoneg, SUPPORTED_FIBRE, and SUPPORTED_TP.
Referenced by skge_devinit().
Definition at line 121 of file skge.c.
References CHIP_ID_GENESIS.
Referenced by skge_usecs2clk().
Definition at line 133 of file skge.c.
References BLINK_84MS, CHIP_ID_GENESIS, gm_phy_write(), skge_port::hw, LED_MODE_OFF, LED_MODE_ON, LED_MODE_TST, LED_START, LED_T_OFF, LED_T_ON, LINKLED_LINKSYNC_ON, LINKLED_OFF, LINKLED_ON, LNK_LED_REG, MO_LED_OFF, MO_LED_ON, PHY_B_PEC_LED_OFF, PHY_B_PEC_LED_ON, PHY_BCOM_P_EXT_CTRL, PHY_M_LED_BLINK_RT, PHY_M_LED_MO_10, PHY_M_LED_MO_100, PHY_M_LED_MO_1000, PHY_M_LED_MO_DUP, PHY_M_LED_MO_RX, PHY_M_LED_PULS_DUR, PHY_M_LEDC_DP_CTRL, PHY_M_LEDC_TX_CTRL, PHY_MARV_LED_CTRL, PHY_MARV_LED_OVER, port, skge_port::port, PULS_170MS, RX_LED_CTRL, RX_LED_TST, RX_LED_VAL, SK_PHY_BCOM, SK_REG, skge_write32(), skge_write8(), skge_port::speed, SPEED_100, TX_LED_CTRL, TX_LED_TST, TX_LED_VAL, and xm_phy_write().
Referenced by skge_down(), and skge_up().
Definition at line 311 of file skge.c.
References base, skge_element::desc, ENOMEM, skge_element::next, skge_tx_desc::next_offset, num, skge_ring::start, skge_ring::to_clean, skge_ring::to_use, and zalloc().
Referenced by skge_up().
|
static |
Definition at line 338 of file skge.c.
References BMU_IRQ_EOF, BMU_OWN, BMU_STF, BMU_TCP_CHECK, bufsize, skge_rx_desc::control, skge_rx_desc::csum1, skge_rx_desc::csum1_start, skge_rx_desc::csum2, skge_rx_desc::csum2_start, io_buffer::data, skge_element::desc, skge_rx_desc::dma_hi, skge_rx_desc::dma_lo, ETH_HLEN, skge_element::iob, map, NULL, virt_to_bus(), and wmb().
Referenced by skge_rx_refill().
|
inlinestatic |
Definition at line 364 of file skge.c.
References BMU_IRQ_EOF, BMU_OWN, BMU_STF, BMU_TCP_CHECK, skge_rx_desc::control, skge_rx_desc::csum2, skge_rx_desc::csum2_start, skge_element::desc, ETH_HLEN, size, and wmb().
|
static |
Definition at line 378 of file skge.c.
References skge_rx_desc::control, skge_element::desc, free_iob(), skge_element::iob, skge_element::next, NULL, skge_port::rx_ring, and skge_ring::start.
Referenced by skge_down(), and skge_up().
|
static |
Definition at line 394 of file skge.c.
References DBG2, skge_port::duplex, DUPLEX_FULL, skge_port::hw, LED_BLK_OFF, LED_ON, LED_SYNC_OFF, LNK_LED_REG, net_device::name, skge_port::netdev, netdev_link_up(), PFX, skge_port::port, SK_REG, skge_write8(), and skge_port::speed.
Referenced by genesis_link_up(), and yukon_link_up().
|
static |
Definition at line 406 of file skge.c.
References DBG2, skge_port::hw, LED_OFF, LNK_LED_REG, net_device::name, skge_port::netdev, netdev_link_down(), PFX, skge_port::port, SK_REG, and skge_write8().
Referenced by xm_link_down(), and yukon_link_down().
|
static |
Definition at line 415 of file skge.c.
References net_device::dev, netdev_link_ok(), port, net_device::priv, skge_link_down(), XM_IMSK, XM_IMSK_DISABLE, and xm_write16().
Referenced by bcom_check_link(), and xm_check_link().
Definition at line 426 of file skge.c.
References ETIMEDOUT, PHY_RETRIES, port, reg, SK_PHY_XMAC, udelay(), val, XM_MMU_CMD, XM_MMU_PHY_RDY, XM_PHY_ADDR, XM_PHY_DATA, xm_read16(), and xm_write16().
Referenced by xm_phy_read().
Definition at line 449 of file skge.c.
References __xm_phy_read(), DBG, PFX, port, and reg.
Referenced by bcom_check_link(), bcom_phy_init(), bcom_phy_intr(), genesis_link_up(), and xm_check_link().
|
static |
Definition at line 480 of file skge.c.
References B2_BSC_CTRL, B2_BSC_INI, B3_MA_RCINI_RX1, B3_MA_RCINI_RX2, B3_MA_RCINI_TX1, B3_MA_RCINI_TX2, B3_MA_TO_CTRL, B3_MA_TOINI_RX1, B3_MA_TOINI_RX2, B3_MA_TOINI_TX1, B3_MA_TOINI_TX2, B3_PA_CTRL, B3_PA_TOINI_RX1, B3_PA_TOINI_RX2, B3_PA_TOINI_TX1, B3_PA_TOINI_TX2, BSC_START, MA_RST_CLR, PA_RST_CLR, SK_BLK_DUR, SK_FACT_53, SK_MAC_TO_53, SK_PKT_TO_MAX, skge_write16(), skge_write32(), and skge_write8().
Referenced by skge_reset().
|
static |
Definition at line 508 of file skge.c.
References GMAC_IRQ_MSK, PHY_BCOM_INT_MASK, port, reg, SK_PHY_BCOM, SK_REG, skge_write8(), XM_GP_PORT, XM_GP_RES_STAT, XM_HSM, XM_IMSK, XM_IMSK_DISABLE, XM_MD_FRF, XM_MD_FTF, XM_MODE, xm_outhash(), xm_read32(), XM_RX_CMD, XM_TX_CMD, xm_write16(), and xm_write32().
Referenced by genesis_stop(), and skge_reset().
|
static |
Definition at line 553 of file skge.c.
References skge_port::autoneg, AUTONEG_ENABLE, DBG, net_device::dev, skge_port::duplex, DUPLEX_FULL, DUPLEX_HALF, FLOW_STAT_LOC_SEND, FLOW_STAT_NONE, FLOW_STAT_REM_SEND, FLOW_STAT_SYMMETRIC, skge_port::flow_status, genesis_link_up(), net_device::name, netdev_link_ok(), PFX, PHY_B_AN_RF, PHY_B_AS_AN_RES_MSK, PHY_B_AS_PAUSE_MSK, PHY_B_AS_PRR, PHY_B_AS_PRT, PHY_B_RES_1000FD, PHY_B_RES_1000HD, PHY_BCOM_AUX_STAT, PHY_BCOM_STAT, PHY_ST_AN_OVER, PHY_ST_LSYNC, PHY_XMAC_AUNE_LP, port, net_device::priv, skge_port::speed, SPEED_1000, status, xm_link_down(), and xm_phy_read().
Referenced by bcom_phy_intr(), and genesis_mac_init().
|
static |
Definition at line 621 of file skge.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, skge_port::advertising, ARRAY_SIZE, skge_port::autoneg, AUTONEG_ENABLE, skge_port::duplex, DUPLEX_FULL, ext, skge_port::flow_control, skge_port::hw, PHY_AN_CSMA, PHY_B_1000C_AFD, PHY_B_1000C_AHD, PHY_B_1000C_MSE, PHY_B_1000C_RD, PHY_B_AC_DIS_PM, PHY_B_DEF_MSK, PHY_B_PEC_EN_LTR, PHY_BCOM_1000T_CTRL, PHY_BCOM_AUNE_ADV, PHY_BCOM_AUX_CTRL, PHY_BCOM_CTRL, PHY_BCOM_ID1_A1, PHY_BCOM_ID1_C0, PHY_BCOM_INT_MASK, PHY_BCOM_P_EXT_CTRL, PHY_CT_ANE, PHY_CT_DUP_MD, PHY_CT_RE_CFG, PHY_CT_SP1000, phy_pause_map, PHY_XMAC_ID1, port, skge_port::port, r, reg, val, XM_ISRC, XM_MMU_CMD, XM_MMU_NO_PRE, xm_phy_read(), xm_phy_write(), xm_read16(), and xm_write16().
Referenced by genesis_mac_init().
|
static |
Definition at line 718 of file skge.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, skge_port::advertising, skge_port::autoneg, AUTONEG_ENABLE, ctrl, skge_port::duplex, DUPLEX_FULL, fiber_pause_map, skge_port::flow_control, skge_port::hw, PHY_CT_ANE, PHY_CT_DUP_MD, PHY_CT_RE_CFG, PHY_X_AN_FD, PHY_X_AN_HD, PHY_XMAC_AUNE_ADV, PHY_XMAC_CTRL, port, skge_port::port, skge_port::use_xm_link_timer, and xm_phy_write().
Referenced by genesis_mac_init().
|
static |
Definition at line 752 of file skge.c.
References skge_port::autoneg, AUTONEG_ENABLE, DBG, skge_hw::dev, skge_port::duplex, DUPLEX_FULL, DUPLEX_HALF, skge_port::flow_control, FLOW_MODE_LOC_SEND, FLOW_MODE_SYM_OR_REM, FLOW_MODE_SYMMETRIC, FLOW_STAT_LOC_SEND, FLOW_STAT_NONE, FLOW_STAT_REM_SEND, FLOW_STAT_SYMMETRIC, skge_port::flow_status, genesis_link_up(), skge_port::hw, net_device::name, netdev_link_ok(), PFX, PHY_B_AN_RF, PHY_ST_AN_OVER, PHY_ST_LSYNC, PHY_X_P_ASYM_MD, PHY_X_P_BOTH_MD, PHY_X_P_SYM_MD, PHY_X_RS_FD, PHY_X_RS_HD, PHY_X_RS_PAUSE, PHY_XMAC_AUNE_LP, PHY_XMAC_RES_ABI, PHY_XMAC_STAT, port, skge_port::port, net_device::priv, skge_port::speed, SPEED_1000, status, xm_link_down(), and xm_phy_read().
Referenced by xm_link_timer().
|
static |
Definition at line 827 of file skge.c.
References net_device::dev, skge_hw::dev, skge_port::hw, skge_port::netdev, port, skge_port::port, xm_check_link(), XM_GP_INP_ASS, XM_GP_PORT, XM_IMSK, XM_IS_INP_ASS, XM_ISRC, xm_read16(), and xm_write16().
Referenced by skge_poll().
|
static |
Definition at line 998 of file skge.c.
References B2_GP_IO, B3_PA_CTRL, cmd, genesis_reset(), GP_DIR_0, GP_DIR_2, GP_IO_0, GP_IO_2, skge_port::hw, MFF_CLR_MAC_RST, MFF_SET_MAC_RST, PA_CLR_TO_TX1, PA_CLR_TO_TX2, port, skge_port::port, reg, SK_PHY_XMAC, SK_REG, skge_read16(), skge_read32(), skge_write16(), skge_write32(), TX_MFF_CTRL1, XM_MMU_CMD, XM_MMU_ENA_RX, XM_MMU_ENA_TX, xm_read16(), and xm_write16().
Referenced by skge_down().
|
inlinestatic |
Definition at line 1129 of file skge.c.
References bcom_check_link(), ctrl, DBG, DBGIO, skge_port::hw, net_device::name, skge_port::netdev, PFX, PHY_B_IS_AN_PR, PHY_B_IS_LST_CHANGE, PHY_B_IS_NO_HDCL, PHY_B_IS_PSE, PHY_BCOM_CTRL, PHY_BCOM_INT_STAT, PHY_CT_LOOP, port, skge_port::port, xm_phy_read(), and xm_phy_write().
Referenced by skge_phyirq().
Definition at line 1179 of file skge.c.
References ETIMEDOUT, GM_SMI_CT_OP_RD, GM_SMI_CT_PHY_AD, GM_SMI_CT_RD_VAL, GM_SMI_CT_REG_AD, GM_SMI_CTRL, GM_SMI_DATA, gma_read16(), gma_write16(), PHY_RETRIES, port, reg, udelay(), and val.
Referenced by gm_phy_read().
Definition at line 1199 of file skge.c.
References __gm_phy_read(), DBG, PFX, port, and reg.
Referenced by yukon_init(), yukon_link_down(), yukon_phy_intr(), and yukon_suspend().
|
static |
Definition at line 1297 of file skge.c.
References GM_MC_ADDR_H1, GM_MC_ADDR_H2, GM_MC_ADDR_H3, GM_MC_ADDR_H4, gm_phy_write(), GM_RX_CTRL, GM_RXCR_MCF_ENA, GM_RXCR_UCF_ENA, gma_read16(), gma_write16(), PHY_MARV_INT_MASK, and port.
Referenced by skge_reset(), and yukon_stop().
|
static |
Definition at line 1311 of file skge.c.
References B2_FAR, CHIP_ID_YUKON, reg, skge_read32(), skge_read8(), skge_write32(), and skge_write8().
Referenced by yukon_mac_init().
|
static |
Definition at line 1326 of file skge.c.
References addr, skge_port::autoneg, AUTONEG_DISABLE, B2_GP_IO, CHIP_ID_YUKON_LITE, CHIP_REV_YU_LITE_A3, DATA_BLIND_DEF, DATA_BLIND_VAL, skge_port::duplex, DUPLEX_FULL, skge_port::flow_control, FLOW_MODE_LOC_SEND, FLOW_MODE_NONE, FLOW_MODE_SYM_OR_REM, FLOW_MODE_SYMMETRIC, GM_GP_CTRL, GM_GPCR_AU_ALL_DIS, GM_GPCR_AU_FCT_DIS, GM_GPCR_DUP_FULL, GM_GPCR_FC_RX_DIS, GM_GPCR_FC_TX_DIS, GM_GPCR_SPEED_100, GM_GPCR_SPEED_1000, GM_MIB_CNT_BASE, GM_MIB_CNT_SIZE, GM_PAR_MIB_CLR, GM_PHY_ADDR, GM_RX_CTRL, GM_RX_IRQ_MSK, GM_RXCR_CRC_DIS, GM_RXCR_MCF_ENA, GM_RXCR_UCF_ENA, GM_SERIAL_MODE, GM_SMOD_VLAN_ENA, GM_SRC_ADDR_1L, GM_SRC_ADDR_2L, GM_TR_IRQ_MSK, GM_TX_CTRL, GM_TX_FLOW_CTRL, GM_TX_IRQ_MSK, GM_TX_PARAM, gma_read16(), gma_set_addr(), gma_write16(), GMAC_CTRL, GMAC_IRQ_SRC, GMC_PAUSE_OFF, GMC_PAUSE_ON, GMC_RST_CLR, GMC_RST_SET, GMF_OPER_ON, GMF_RST_CLR, GMF_RX_F_FL_ON, GP_DIR_9, GP_IO_9, GPC_ANEG_ADV_ALL_M, GPC_DIS_FC, GPC_DIS_SLEEP, GPC_ENA_PAUSE, GPC_ENA_XC, GPC_HWCFG_GMII_COP, GPC_HWCFG_GMII_FIB, GPC_INT_POL_HI, GPC_RST_CLR, GPC_RST_SET, GPHY_CTRL, IPG_DATA_DEF, IPG_DATA_VAL, is_yukon_lite_a0(), port, reg, RX_FF_FL_DEF_MSK, RX_GMF_CTRL_T, RX_GMF_FL_MSK, RX_GMF_FL_THR, RX_GMF_FL_THR_DEF, SK_REG, skge_read16(), skge_read32(), skge_write16(), skge_write32(), skge_write8(), skge_port::speed, SPEED_10, SPEED_100, SPEED_1000, TX_COL_DEF, TX_COL_THR, TX_GMF_CTRL_T, TX_IPG_JAM_DATA, TX_IPG_JAM_DEF, TX_JAM_IPG_DEF, TX_JAM_IPG_VAL, TX_JAM_LEN_DEF, TX_JAM_LEN_VAL, and yukon_init().
Referenced by skge_up().
|
static |
Definition at line 1474 of file skge.c.
References ctrl, gm_phy_read(), gm_phy_write(), PHY_CT_PDOWN, PHY_CT_RESET, PHY_M_PC_POL_R_DIS, PHY_MARV_CTRL, PHY_MARV_PHY_CTRL, and port.
Referenced by yukon_stop().
|
static |
Definition at line 1492 of file skge.c.
References GM_GP_CTRL, GM_GPCR_RX_ENA, GM_GPCR_TX_ENA, gma_read16(), gma_write16(), GMAC_CTRL, GMAC_IRQ_MSK, GMC_RST_SET, GPC_RST_SET, GPHY_CTRL, skge_port::hw, port, skge_port::port, SK_REG, skge_write8(), yukon_reset(), and yukon_suspend().
Referenced by skge_down().
Definition at line 1512 of file skge.c.
References PHY_M_PS_SPEED_100, PHY_M_PS_SPEED_1000, PHY_M_PS_SPEED_MSK, SPEED_10, SPEED_100, and SPEED_1000.
Referenced by yukon_phy_intr().
|
static |
Definition at line 1524 of file skge.c.
References skge_port::autoneg, AUTONEG_ENABLE, skge_port::duplex, DUPLEX_FULL, GM_GP_CTRL, GM_GPCR_DUP_FULL, GM_GPCR_RX_ENA, GM_GPCR_TX_ENA, gm_phy_write(), gma_read16(), gma_write16(), GMAC_DEF_MSK, GMAC_IRQ_MSK, skge_port::hw, PHY_M_IS_DEF_MSK, PHY_MARV_INT_MASK, port, skge_port::port, reg, SK_REG, skge_link_up(), and skge_write8().
Referenced by yukon_phy_intr().
|
static |
Definition at line 1545 of file skge.c.
References ctrl, FLOW_STAT_REM_SEND, skge_port::flow_status, GM_GP_CTRL, GM_GPCR_RX_ENA, GM_GPCR_TX_ENA, gm_phy_read(), gm_phy_write(), gma_read16(), gma_write16(), skge_port::hw, PHY_M_AN_ASP, PHY_MARV_AUNE_ADV, port, skge_port::port, skge_link_down(), and yukon_init().
Referenced by yukon_phy_intr().
|
static |
Definition at line 1567 of file skge.c.
References DBG, DBGIO, skge_port::duplex, DUPLEX_FULL, DUPLEX_HALF, FLOW_STAT_LOC_SEND, FLOW_STAT_NONE, FLOW_STAT_REM_SEND, FLOW_STAT_SYMMETRIC, skge_port::flow_status, gm_phy_read(), GMAC_CTRL, GMC_PAUSE_OFF, GMC_PAUSE_ON, skge_port::hw, net_device::name, skge_port::netdev, NULL, PFX, PHY_B_1000S_MSF, PHY_M_AN_RF, PHY_M_IS_AN_COMPL, PHY_M_IS_DUP_CHANGE, PHY_M_IS_LSP_CHANGE, PHY_M_IS_LST_CHANGE, PHY_M_PS_FULL_DUP, PHY_M_PS_LINK_UP, PHY_M_PS_PAUSE_MSK, PHY_M_PS_RX_P_EN, PHY_M_PS_SPDUP_RES, PHY_M_PS_TX_P_EN, PHY_MARV_1000T_STAT, PHY_MARV_AUNE_LP, PHY_MARV_INT_STAT, PHY_MARV_PHY_STAT, port, skge_port::port, reason, SK_REG, skge_write8(), skge_port::speed, SPEED_1000, yukon_link_down(), yukon_link_up(), and yukon_speed().
Referenced by skge_phyirq().
Definition at line 1644 of file skge.c.
References end, len, Q_R1, Q_R2, RB_ADDR, RB_CTRL, RB_ENA_OP_MD, RB_ENA_STFWD, RB_END, RB_RP, RB_RST_CLR, RB_RX_LTPP, RB_RX_UTPP, RB_START, RB_WP, skge_write32(), skge_write8(), and start.
Referenced by skge_up().
|
static |
Definition at line 1675 of file skge.c.
References B0_CTST, base, CS_BUS_CLOCK, CS_BUS_SLOT_SZ, CSR_CLR_RESET, skge_element::desc, skge_port::dma, skge_port::hw, skge_port::mem, Q_ADDR, Q_CSR, Q_DA_H, Q_DA_L, Q_F, skge_read16(), and skge_write32().
Referenced by skge_up().
void skge_free | ( | struct net_device * | dev | ) |
Definition at line 1692 of file skge.c.
References skge_port::dma, free, free_phys(), skge_port::mem, NULL, net_device::priv, RING_SIZE, skge_port::rx_ring, skge_ring::start, and skge_port::tx_ring.
Referenced by skge_down(), and skge_up().
|
static |
Definition at line 1782 of file skge.c.
References CSR_SET_RESET, CSR_STOP, port, Q_ADDR, Q_CSR, Q_R1, Q_R2, RB_ADDR, RB_CTRL, RB_DIS_OP_MD, RB_RST_SET, rxqaddr, skge_write32(), and skge_write8().
Referenced by skge_down().
|
inlinestatic |
Definition at line 1856 of file skge.c.
References mb(), NUM_TX_DESC, skge_ring::to_clean, and skge_ring::to_use.
Referenced by skge_xmit_frame().
Definition at line 1922 of file skge.c.
References CHIP_ID_GENESIS, GMR_FS_LEN_SHIFT, status, and XMR_FS_LEN_SHIFT.
Referenced by skge_rx_done().
Definition at line 1930 of file skge.c.
References CHIP_ID_GENESIS, GMR_FS_ANY_ERR, GMR_FS_RX_OK, status, XMR_FS_2L_VLAN, and XMR_FS_ERR.
Referenced by skge_rx_done().
|
static |
Definition at line 1940 of file skge.c.
References BMU_OWN, control, CSR_IRQ_CL_F, skge_element::desc, skge_port::hw, skge_element::iob, mb(), netdev_tx_complete(), skge_element::next, skge_port::port, net_device::priv, Q_ADDR, Q_CSR, skge_write8(), skge_ring::to_clean, skge_ring::to_use, skge_port::tx_ring, and txqaddr.
Referenced by skge_poll().
|
static |
Definition at line 2004 of file skge.c.
References bad_phy_status(), BMU_BBC, BMU_OWN, control, skge_rx_desc::control, DBG, DBG2, skge_element::desc, EIO, skge_port::hw, skge_element::iob, iob_put, len, netdev_rx(), netdev_rx_err(), skge_element::next, NULL, NUM_RX_DESC, phy_length(), net_device::priv, rmb, skge_port::rx_ring, skge_rx_refill(), skge_rx_desc::status, and skge_ring::to_clean.
Referenced by skge_poll().
|
static |
Definition at line 2111 of file skge.c.
References ARRAY_SIZE, skge_chips, and snprintf().
Referenced by skge_probe().
|
static |
Definition at line 2129 of file skge.c.
References B0_CTST, B0_HWE_IMSK, B0_HWE_ISRC, B0_IMSK, B0_ISRC, B0_LED, B0_POWER_CTRL, B2_CHIP_ID, B2_E_0, B2_E_1, B2_IRQM_CTRL, B2_IRQM_INI, B2_IRQM_MSK, B2_MAC_CFG, B2_PMD_TYP, B2_TI_CTRL, B2_TST_CTRL1, B2_TST_CTRL2, B3_RI_CTRL, B3_RI_RTO_R1, B3_RI_RTO_R2, B3_RI_RTO_XA1, B3_RI_RTO_XA2, B3_RI_RTO_XS1, B3_RI_RTO_XS2, B3_RI_WTO_R1, B3_RI_WTO_R2, B3_RI_WTO_XA1, B3_RI_WTO_XA2, B3_RI_WTO_XS1, B3_RI_WTO_XS2, CFG_CHIP_R_MSK, CFG_SNG_MAC, CHIP_ID_GENESIS, CHIP_ID_YUKON, CHIP_ID_YUKON_LITE, CHIP_ID_YUKON_LP, CS_CLK_RUN_ENA, CS_CLK_RUN_HOT, CS_CLK_RUN_RST, CS_MRST_CLR, CS_RST_CLR, CS_RST_SET, DBG, EOPNOTSUPP, genesis_init(), genesis_reset(), GMAC_LINK_CTRL, GMLC_RST_CLR, GMLC_RST_SET, IS_ERR_MSK, IS_EXT_REG, IS_HW_ERR, IS_IRQ_SENSOR, IS_XA1_F, IS_XA2_F, LED_STAT_ON, PC_VAUX_ENA, PC_VAUX_OFF, PC_VCC_ENA, PC_VCC_ON, PCI_DEV_REG1, PCI_PHY_COMA, pci_read_config_dword(), pci_read_config_word(), PCI_STATUS, PCI_STATUS_ERROR_BITS, pci_write_config_dword(), pci_write_config_word(), PFX, PHY_ADDR_BCOM, PHY_ADDR_MARV, PHY_ADDR_XMAC, reg, RI_RST_CLR, SK_PHY_BCOM, SK_PHY_MARV_COPPER, SK_PHY_XMAC, SK_REG, SK_RI_TO_53, skge_read16(), skge_read32(), skge_read8(), skge_usecs2clk(), skge_write16(), skge_write32(), skge_write8(), TIM_CLR_IRQ, TIM_START, TIM_STOP, TST_CFG_WRITE_OFF, TST_CFG_WRITE_ON, TXA_CTRL, TXA_ENA_ARB, and yukon_reset().
Referenced by skge_probe().
|
static |
Definition at line 2292 of file skge.c.
References skge_port::advertising, alloc_etherdev(), skge_port::autoneg, AUTONEG_ENABLE, B2_MAC_1, DBG, net_device::dev, skge_port::duplex, ETH_ALEN, skge_port::flow_control, FLOW_MODE_SYM_OR_REM, skge_port::hw, memcpy(), skge_port::netdev, NULL, PFX, port, skge_port::port, skge_supported_modes(), and skge_port::speed.
Referenced by skge_probe().
|
static |
Definition at line 2326 of file skge.c.
References DBG2, net_device::dev, device::name, netdev_addr(), and PFX.
Referenced by skge_probe().
|
static |
Definition at line 2332 of file skge.c.
References adjust_pci_device(), B0_LED, DBG, net_device::dev, skge_hw::dev, ENOMEM, free, pci_device::ioaddr, iounmap(), pci_device::irq, LED_STAT_OFF, netdev_init(), netdev_nullify(), netdev_put(), NULL, pci_bar_start(), PCI_BASE_ADDRESS_0, pci_ioremap(), pci_set_drvdata(), skge_hw::pdev, PFX, register_netdev(), skge_board_name(), skge_devinit(), skge_operations, SKGE_REG_SIZE, skge_reset(), skge_show_addr(), skge_write16(), and zalloc().
|
static |
Definition at line 2408 of file skge.c.
References B0_CTST, B0_IMSK, B0_LED, CS_RST_SET, free, iounmap(), LED_STAT_OFF, netdev_nullify(), netdev_put(), NULL, pci_get_drvdata(), pci_set_drvdata(), skge_hw::pdev, skge_read32(), skge_write16(), skge_write32(), skge_write8(), and unregister_netdev().
|
static |
|
static |
Definition at line 76 of file skge.c.
Referenced by skge_probe().
Definition at line 85 of file skge.c.
Referenced by skge_down(), skge_tx_done(), skge_up(), and skge_xmit_frame().
Definition at line 86 of file skge.c.
Referenced by skge_poll(), skge_rx_stop(), and skge_up().
Definition at line 87 of file skge.c.
Referenced by skge_down(), skge_net_irq(), and skge_up().
|
static |
Definition at line 536 of file skge.c.
Referenced by bcom_phy_init(), and yukon_init().
|
static |
Definition at line 544 of file skge.c.
Referenced by xm_phy_init(), and yukon_init().
const { ... } skge_chips[] |
Referenced by skge_board_name().
struct pci_driver skge_driver __pci_driver |