Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
e1000.h File Reference
#include <linux/bitops.h>
#include <linux/types.h>
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/io.h>
#include <linux/netdevice.h>
#include <linux/pci.h>
#include <linux/pci-aspm.h>
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include "hw.h"

Go to the source code of this file.

Data Structures

struct  e1000_ps_page
 
struct  e1000_buffer
 
struct  e1000_ring
 
struct  e1000_phy_regs
 
struct  e1000_adapter
 
struct  e1000_info
 

Macros

#define e_dbg(format, arg...)   netdev_dbg(hw->adapter->netdev, format, ## arg)
 
#define e_err(format, arg...)   netdev_err(adapter->netdev, format, ## arg)
 
#define e_info(format, arg...)   netdev_info(adapter->netdev, format, ## arg)
 
#define e_warn(format, arg...)   netdev_warn(adapter->netdev, format, ## arg)
 
#define e_notice(format, arg...)   netdev_notice(adapter->netdev, format, ## arg)
 
#define E1000E_INT_MODE_LEGACY   0
 
#define E1000E_INT_MODE_MSI   1
 
#define E1000E_INT_MODE_MSIX   2
 
#define E1000_DEFAULT_TXD   256
 
#define E1000_MAX_TXD   4096
 
#define E1000_MIN_TXD   64
 
#define E1000_DEFAULT_RXD   256
 
#define E1000_MAX_RXD   4096
 
#define E1000_MIN_RXD   64
 
#define E1000_MIN_ITR_USECS   10 /* 100000 irq/sec */
 
#define E1000_MAX_ITR_USECS   10000 /* 100 irq/sec */
 
#define E1000_ERT_2048   0x100
 
#define E1000_FC_PAUSE_TIME   0x0680 /* 858 usec */
 
#define E1000_RX_BUFFER_WRITE   16 /* Must be power of 2 */
 
#define AUTO_ALL_MODES   0
 
#define E1000_EEPROM_APME   0x0400
 
#define E1000_MNG_VLAN_NONE   (-1)
 
#define PS_PAGE_BUFFERS   (MAX_PS_BUFFERS - 1)
 
#define DEFAULT_JUMBO   9234
 
#define BM_PORT_CTRL_PAGE   769
 
#define PHY_UPPER_SHIFT   21
 
#define BM_PHY_REG(page, reg)
 
#define BM_PORT_GEN_CFG   PHY_REG(BM_PORT_CTRL_PAGE, 17)
 
#define BM_RCTL   PHY_REG(BM_WUC_PAGE, 0)
 
#define BM_WUC   PHY_REG(BM_WUC_PAGE, 1)
 
#define BM_WUFC   PHY_REG(BM_WUC_PAGE, 2)
 
#define BM_WUS   PHY_REG(BM_WUC_PAGE, 3)
 
#define BM_RAR_L(_i)   (BM_PHY_REG(BM_WUC_PAGE, 16 + ((_i) << 2)))
 
#define BM_RAR_M(_i)   (BM_PHY_REG(BM_WUC_PAGE, 17 + ((_i) << 2)))
 
#define BM_RAR_H(_i)   (BM_PHY_REG(BM_WUC_PAGE, 18 + ((_i) << 2)))
 
#define BM_RAR_CTRL(_i)   (BM_PHY_REG(BM_WUC_PAGE, 19 + ((_i) << 2)))
 
#define BM_MTA(_i)   (BM_PHY_REG(BM_WUC_PAGE, 128 + ((_i) << 1)))
 
#define BM_RCTL_UPE   0x0001 /* Unicast Promiscuous Mode */
 
#define BM_RCTL_MPE   0x0002 /* Multicast Promiscuous Mode */
 
#define BM_RCTL_MO_SHIFT   3 /* Multicast Offset Shift */
 
#define BM_RCTL_MO_MASK   (3 << 3) /* Multicast Offset Mask */
 
#define BM_RCTL_BAM   0x0020 /* Broadcast Accept Mode */
 
#define BM_RCTL_PMCF   0x0040 /* Pass MAC Control Frames */
 
#define BM_RCTL_RFCE   0x0080 /* Rx Flow Control Enable */
 
#define HV_STATS_PAGE   778
 
#define HV_SCC_UPPER   PHY_REG(HV_STATS_PAGE, 16) /* Single Collision Count */
 
#define HV_SCC_LOWER   PHY_REG(HV_STATS_PAGE, 17)
 
#define HV_ECOL_UPPER   PHY_REG(HV_STATS_PAGE, 18) /* Excessive Coll. Count */
 
#define HV_ECOL_LOWER   PHY_REG(HV_STATS_PAGE, 19)
 
#define HV_MCC_UPPER   PHY_REG(HV_STATS_PAGE, 20) /* Multiple Coll. Count */
 
#define HV_MCC_LOWER   PHY_REG(HV_STATS_PAGE, 21)
 
#define HV_LATECOL_UPPER   PHY_REG(HV_STATS_PAGE, 23) /* Late Collision Count */
 
#define HV_LATECOL_LOWER   PHY_REG(HV_STATS_PAGE, 24)
 
#define HV_COLC_UPPER   PHY_REG(HV_STATS_PAGE, 25) /* Collision Count */
 
#define HV_COLC_LOWER   PHY_REG(HV_STATS_PAGE, 26)
 
#define HV_DC_UPPER   PHY_REG(HV_STATS_PAGE, 27) /* Defer Count */
 
#define HV_DC_LOWER   PHY_REG(HV_STATS_PAGE, 28)
 
#define HV_TNCRS_UPPER   PHY_REG(HV_STATS_PAGE, 29) /* Transmit with no CRS */
 
#define HV_TNCRS_LOWER   PHY_REG(HV_STATS_PAGE, 30)
 
#define E1000_FCRTV_PCH   0x05F40 /* PCH Flow Control Refresh Timer Value */
 
#define BM_CS_STATUS   17
 
#define BM_CS_STATUS_LINK_UP   0x0400
 
#define BM_CS_STATUS_RESOLVED   0x0800
 
#define BM_CS_STATUS_SPEED_MASK   0xC000
 
#define BM_CS_STATUS_SPEED_1000   0x8000
 
#define HV_M_STATUS   26
 
#define HV_M_STATUS_AUTONEG_COMPLETE   0x1000
 
#define HV_M_STATUS_SPEED_MASK   0x0300
 
#define HV_M_STATUS_SPEED_1000   0x0200
 
#define HV_M_STATUS_LINK_UP   0x0040
 
#define E1000_ICH_FWSM_PCIM2PCI   0x01000000 /* ME PCIm-to-PCI active */
 
#define E1000_ICH_FWSM_PCIM2PCI_COUNT   2000
 
#define LINK_TIMEOUT   100
 
#define E1000_CHECK_RESET_COUNT   25
 
#define DEFAULT_RDTR   0
 
#define DEFAULT_RADV   8
 
#define BURST_RDTR   0x20
 
#define BURST_RADV   0x20
 
#define E1000_TXDCTL_DMA_BURST_ENABLE
 
#define E1000_RXDCTL_DMA_BURST_ENABLE
 
#define E1000_TIDV_FPD   (1 << 31)
 
#define E1000_RDTR_FPD   (1 << 31)
 
#define FLAG_HAS_AMT   (1 << 0)
 
#define FLAG_HAS_FLASH   (1 << 1)
 
#define FLAG_HAS_HW_VLAN_FILTER   (1 << 2)
 
#define FLAG_HAS_WOL   (1 << 3)
 
#define FLAG_HAS_CTRLEXT_ON_LOAD   (1 << 5)
 
#define FLAG_HAS_SWSM_ON_LOAD   (1 << 6)
 
#define FLAG_HAS_JUMBO_FRAMES   (1 << 7)
 
#define FLAG_READ_ONLY_NVM   (1 << 8)
 
#define FLAG_IS_ICH   (1 << 9)
 
#define FLAG_HAS_MSIX   (1 << 10)
 
#define FLAG_HAS_SMART_POWER_DOWN   (1 << 11)
 
#define FLAG_IS_QUAD_PORT_A   (1 << 12)
 
#define FLAG_IS_QUAD_PORT   (1 << 13)
 
#define FLAG_APME_IN_WUC   (1 << 15)
 
#define FLAG_APME_IN_CTRL3   (1 << 16)
 
#define FLAG_APME_CHECK_PORT_B   (1 << 17)
 
#define FLAG_DISABLE_FC_PAUSE_TIME   (1 << 18)
 
#define FLAG_NO_WAKE_UCAST   (1 << 19)
 
#define FLAG_MNG_PT_ENABLED   (1 << 20)
 
#define FLAG_RESET_OVERWRITES_LAA   (1 << 21)
 
#define FLAG_TARC_SPEED_MODE_BIT   (1 << 22)
 
#define FLAG_TARC_SET_BIT_ZERO   (1 << 23)
 
#define FLAG_RX_NEEDS_RESTART   (1 << 24)
 
#define FLAG_LSC_GIG_SPEED_DROP   (1 << 25)
 
#define FLAG_SMART_POWER_DOWN   (1 << 26)
 
#define FLAG_MSI_ENABLED   (1 << 27)
 
#define FLAG_TSO_FORCE   (1 << 29)
 
#define FLAG_RX_RESTART_NOW   (1 << 30)
 
#define FLAG_MSI_TEST_FAILED   (1 << 31)
 
#define FLAG2_CRC_STRIPPING   (1 << 0)
 
#define FLAG2_HAS_PHY_WAKEUP   (1 << 1)
 
#define FLAG2_IS_DISCARDING   (1 << 2)
 
#define FLAG2_DISABLE_ASPM_L1   (1 << 3)
 
#define FLAG2_HAS_PHY_STATS   (1 << 4)
 
#define FLAG2_HAS_EEE   (1 << 5)
 
#define FLAG2_DMA_BURST   (1 << 6)
 
#define FLAG2_DISABLE_ASPM_L0S   (1 << 7)
 
#define FLAG2_DISABLE_AIM   (1 << 8)
 
#define FLAG2_CHECK_PHY_HANG   (1 << 9)
 
#define FLAG2_NO_DISABLE_RX   (1 << 10)
 
#define FLAG2_PCIM2PCI_ARBITER_WA   (1 << 11)
 
#define FLAG2_DFLT_CRC_STRIPPING   (1 << 12)
 
#define E1000_RX_DESC_PS(R, i)   (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
 
#define E1000_RX_DESC_EXT(R, i)   (&(((union e1000_rx_desc_extended *)((R).desc))[i]))
 
#define E1000_GET_DESC(R, i, type)   (&(((struct type *)((R).desc))[i]))
 
#define E1000_TX_DESC(R, i)   E1000_GET_DESC(R, i, e1000_tx_desc)
 
#define E1000_CONTEXT_DESC(R, i)   E1000_GET_DESC(R, i, e1000_context_desc)
 
#define er32(reg)   __er32(hw, E1000_##reg)
 
#define ew32(reg, val)   __ew32(hw, E1000_##reg, (val))
 
#define e1e_flush()   er32(STATUS)
 
#define E1000_WRITE_REG_ARRAY(a, reg, offset, value)   (__ew32((a), (reg + ((offset) << 2)), (value)))
 
#define E1000_READ_REG_ARRAY(a, reg, offset)   (readl((a)->hw_addr + reg + ((offset) << 2)))
 

Enumerations

enum  e1000_boards {
  board_82571, board_82572, board_82573, board_82574,
  board_82583, board_80003es2lan, board_ich8lan, board_ich9lan,
  board_ich10lan, board_pchlan, board_pch2lan, board_pch_lpt
}
 
enum  e1000_state_t {
  __E1000_TESTING, __E1000_RESETTING, __E1000_DOWN, __E1000_TESTING,
  __E1000_RESETTING, __E1000_ACCESS_SHARED_RESOURCE, __E1000_DOWN, __IGB_TESTING,
  __IGB_RESETTING, __IGB_DOWN
}
 
enum  latency_range {
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255,
  lowest_latency = 0, low_latency = 1, bulk_latency = 2, latency_invalid = 255
}
 

Functions

void e1000e_check_options (struct e1000_adapter *adapter)
 
void e1000e_set_ethtool_ops (struct net_device *netdev)
 
int e1000e_up (struct e1000_adapter *adapter)
 
void e1000e_down (struct e1000_adapter *adapter)
 
void e1000e_reinit_locked (struct e1000_adapter *adapter)
 
void e1000e_reset (struct e1000_adapter *adapter)
 
void e1000e_power_up_phy (struct e1000_adapter *adapter)
 
int e1000e_setup_rx_resources (struct e1000_ring *ring)
 
int e1000e_setup_tx_resources (struct e1000_ring *ring)
 
void e1000e_free_rx_resources (struct e1000_ring *ring)
 
void e1000e_free_tx_resources (struct e1000_ring *ring)
 
struct rtnl_link_stats64e1000e_get_stats64 (struct net_device *netdev, struct rtnl_link_stats64 *stats)
 
void e1000e_set_interrupt_capability (struct e1000_adapter *adapter)
 
void e1000e_reset_interrupt_capability (struct e1000_adapter *adapter)
 
void e1000e_get_hw_control (struct e1000_adapter *adapter)
 
void e1000e_release_hw_control (struct e1000_adapter *adapter)
 
void e1000e_write_itr (struct e1000_adapter *adapter, u32 itr)
 
chare1000e_get_hw_dev_name (struct e1000_hw *hw)
 
s32 e1000_read_pba_string_generic (struct e1000_hw *hw, u8 *pba_num, u32 pba_num_size)
 
s32 e1000e_commit_phy (struct e1000_hw *hw)
 
bool e1000e_enable_mng_pass_thru (struct e1000_hw *hw)
 
bool e1000e_get_laa_state_82571 (struct e1000_hw *hw)
 
void e1000e_set_laa_state_82571 (struct e1000_hw *hw, bool state)
 
void e1000e_write_protect_nvm_ich8lan (struct e1000_hw *hw)
 
void e1000e_set_kmrn_lock_loss_workaround_ich8lan (struct e1000_hw *hw, bool state)
 
void e1000e_igp3_phy_powerdown_workaround_ich8lan (struct e1000_hw *hw)
 
void e1000e_gig_downshift_workaround_ich8lan (struct e1000_hw *hw)
 
void e1000_suspend_workarounds_ich8lan (struct e1000_hw *hw)
 
void e1000_resume_workarounds_pchlan (struct e1000_hw *hw)
 
s32 e1000_configure_k1_ich8lan (struct e1000_hw *hw, bool k1_enable)
 
s32 e1000_lv_jumbo_workaround_ich8lan (struct e1000_hw *hw, bool enable)
 
void e1000_copy_rx_addrs_to_phy_ich8lan (struct e1000_hw *hw)
 
s32 e1000e_check_for_copper_link (struct e1000_hw *hw)
 
s32 e1000e_check_for_fiber_link (struct e1000_hw *hw)
 
s32 e1000e_check_for_serdes_link (struct e1000_hw *hw)
 
s32 e1000e_setup_led_generic (struct e1000_hw *hw)
 
s32 e1000e_cleanup_led_generic (struct e1000_hw *hw)
 
s32 e1000e_led_on_generic (struct e1000_hw *hw)
 
s32 e1000e_led_off_generic (struct e1000_hw *hw)
 
s32 e1000e_get_bus_info_pcie (struct e1000_hw *hw)
 
void e1000_set_lan_id_multi_port_pcie (struct e1000_hw *hw)
 
void e1000_set_lan_id_single_port (struct e1000_hw *hw)
 
s32 e1000e_get_speed_and_duplex_copper (struct e1000_hw *hw, u16 *speed, u16 *duplex)
 
s32 e1000e_get_speed_and_duplex_fiber_serdes (struct e1000_hw *hw, u16 *speed, u16 *duplex)
 
s32 e1000e_disable_pcie_master (struct e1000_hw *hw)
 
s32 e1000e_get_auto_rd_done (struct e1000_hw *hw)
 
s32 e1000e_id_led_init_generic (struct e1000_hw *hw)
 
void e1000e_clear_hw_cntrs_base (struct e1000_hw *hw)
 
s32 e1000e_setup_fiber_serdes_link (struct e1000_hw *hw)
 
s32 e1000e_copper_link_setup_m88 (struct e1000_hw *hw)
 
s32 e1000e_copper_link_setup_igp (struct e1000_hw *hw)
 
s32 e1000e_setup_link_generic (struct e1000_hw *hw)
 
void e1000_clear_vfta_generic (struct e1000_hw *hw)
 
void e1000e_init_rx_addrs (struct e1000_hw *hw, u16 rar_count)
 
void e1000e_update_mc_addr_list_generic (struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
 
void e1000e_rar_set_generic (struct e1000_hw *hw, u8 *addr, u32 index)
 
s32 e1000e_set_fc_watermarks (struct e1000_hw *hw)
 
void e1000e_set_pcie_no_snoop (struct e1000_hw *hw, u32 no_snoop)
 
s32 e1000e_get_hw_semaphore (struct e1000_hw *hw)
 
s32 e1000e_valid_led_default (struct e1000_hw *hw, u16 *data)
 
void e1000e_config_collision_dist_generic (struct e1000_hw *hw)
 
s32 e1000e_config_fc_after_link_up (struct e1000_hw *hw)
 
s32 e1000e_force_mac_fc (struct e1000_hw *hw)
 
s32 e1000e_blink_led_generic (struct e1000_hw *hw)
 
void e1000_write_vfta_generic (struct e1000_hw *hw, u32 offset, u32 value)
 
s32 e1000_check_alt_mac_addr_generic (struct e1000_hw *hw)
 
void e1000e_reset_adaptive (struct e1000_hw *hw)
 
void e1000e_update_adaptive (struct e1000_hw *hw)
 
s32 e1000e_setup_copper_link (struct e1000_hw *hw)
 
s32 e1000e_get_phy_id (struct e1000_hw *hw)
 
void e1000e_put_hw_semaphore (struct e1000_hw *hw)
 
s32 e1000e_check_reset_block_generic (struct e1000_hw *hw)
 
s32 e1000e_phy_force_speed_duplex_igp (struct e1000_hw *hw)
 
s32 e1000e_get_cable_length_igp_2 (struct e1000_hw *hw)
 
s32 e1000e_get_phy_info_igp (struct e1000_hw *hw)
 
s32 e1000_set_page_igp (struct e1000_hw *hw, u16 page)
 
s32 e1000e_read_phy_reg_igp (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_read_phy_reg_igp_locked (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_phy_hw_reset_generic (struct e1000_hw *hw)
 
s32 e1000e_set_d3_lplu_state (struct e1000_hw *hw, bool active)
 
s32 e1000e_write_phy_reg_igp (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_write_phy_reg_igp_locked (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_phy_sw_reset (struct e1000_hw *hw)
 
s32 e1000e_phy_force_speed_duplex_m88 (struct e1000_hw *hw)
 
s32 e1000e_get_cfg_done (struct e1000_hw *hw)
 
s32 e1000e_get_cable_length_m88 (struct e1000_hw *hw)
 
s32 e1000e_get_phy_info_m88 (struct e1000_hw *hw)
 
s32 e1000e_read_phy_reg_m88 (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_write_phy_reg_m88 (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_phy_init_script_igp3 (struct e1000_hw *hw)
 
enum e1000_phy_type e1000e_get_phy_type_from_id (u32 phy_id)
 
s32 e1000e_determine_phy_address (struct e1000_hw *hw)
 
s32 e1000e_write_phy_reg_bm (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_read_phy_reg_bm (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000_enable_phy_wakeup_reg_access_bm (struct e1000_hw *hw, u16 *phy_reg)
 
s32 e1000_disable_phy_wakeup_reg_access_bm (struct e1000_hw *hw, u16 *phy_reg)
 
s32 e1000e_read_phy_reg_bm2 (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_write_phy_reg_bm2 (struct e1000_hw *hw, u32 offset, u16 data)
 
void e1000e_phy_force_speed_duplex_setup (struct e1000_hw *hw, u16 *phy_ctrl)
 
s32 e1000e_write_kmrn_reg (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_write_kmrn_reg_locked (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_read_kmrn_reg (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_read_kmrn_reg_locked (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_phy_has_link_generic (struct e1000_hw *hw, u32 iterations, u32 usec_interval, bool *success)
 
s32 e1000e_phy_reset_dsp (struct e1000_hw *hw)
 
void e1000_power_up_phy_copper (struct e1000_hw *hw)
 
void e1000_power_down_phy_copper (struct e1000_hw *hw)
 
s32 e1000e_read_phy_reg_mdic (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000e_write_phy_reg_mdic (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000e_check_downshift (struct e1000_hw *hw)
 
s32 e1000_read_phy_reg_hv (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000_read_phy_reg_hv_locked (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000_read_phy_reg_page_hv (struct e1000_hw *hw, u32 offset, u16 *data)
 
s32 e1000_write_phy_reg_hv (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000_write_phy_reg_hv_locked (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000_write_phy_reg_page_hv (struct e1000_hw *hw, u32 offset, u16 data)
 
s32 e1000_link_stall_workaround_hv (struct e1000_hw *hw)
 
s32 e1000_copper_link_setup_82577 (struct e1000_hw *hw)
 
s32 e1000_check_polarity_82577 (struct e1000_hw *hw)
 
s32 e1000_get_phy_info_82577 (struct e1000_hw *hw)
 
s32 e1000_phy_force_speed_duplex_82577 (struct e1000_hw *hw)
 
s32 e1000_get_cable_length_82577 (struct e1000_hw *hw)
 
s32 e1000_check_polarity_m88 (struct e1000_hw *hw)
 
s32 e1000_get_phy_info_ife (struct e1000_hw *hw)
 
s32 e1000_check_polarity_ife (struct e1000_hw *hw)
 
s32 e1000_phy_force_speed_duplex_ife (struct e1000_hw *hw)
 
s32 e1000_check_polarity_igp (struct e1000_hw *hw)
 
bool e1000_check_phy_82574 (struct e1000_hw *hw)
 
s32 e1000e_acquire_nvm (struct e1000_hw *hw)
 
s32 e1000e_write_nvm_spi (struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
 
s32 e1000e_update_nvm_checksum_generic (struct e1000_hw *hw)
 
s32 e1000e_poll_eerd_eewr_done (struct e1000_hw *hw, int ee_reg)
 
s32 e1000e_read_nvm_eerd (struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
 
s32 e1000e_validate_nvm_checksum_generic (struct e1000_hw *hw)
 
void e1000e_release_nvm (struct e1000_hw *hw)
 
void e1000e_reload_nvm_generic (struct e1000_hw *hw)
 
s32 e1000_read_mac_addr_generic (struct e1000_hw *hw)
 
bool e1000e_check_mng_mode_generic (struct e1000_hw *hw)
 
bool e1000e_enable_tx_pkt_filtering (struct e1000_hw *hw)
 
s32 e1000e_mng_write_dhcp_info (struct e1000_hw *hw, u8 *buffer, u16 length)
 

Variables

char e1000e_driver_name []
 
const char e1000e_driver_version []
 
unsigned int copybreak
 
struct e1000_info e1000_82571_info
 
struct e1000_info e1000_82572_info
 
struct e1000_info e1000_82573_info
 
struct e1000_info e1000_82574_info
 
struct e1000_info e1000_82583_info
 
struct e1000_info e1000_ich8_info
 
struct e1000_info e1000_ich9_info
 
struct e1000_info e1000_ich10_info
 
struct e1000_info e1000_pch_info
 
struct e1000_info e1000_pch2_info
 
struct e1000_info e1000_pch_lpt_info
 
struct e1000_info e1000_es2_info
 

Macro Definition Documentation

#define AUTO_ALL_MODES   0

Definition at line 87 of file e1000.h.

#define BM_CS_STATUS   17

Definition at line 145 of file e1000.h.

#define BM_CS_STATUS_LINK_UP   0x0400

Definition at line 146 of file e1000.h.

#define BM_CS_STATUS_RESOLVED   0x0800

Definition at line 147 of file e1000.h.

#define BM_CS_STATUS_SPEED_1000   0x8000

Definition at line 149 of file e1000.h.

#define BM_CS_STATUS_SPEED_MASK   0xC000

Definition at line 148 of file e1000.h.

#define BM_MTA (   _i)    (BM_PHY_REG(BM_WUC_PAGE, 128 + ((_i) << 1)))

Definition at line 116 of file e1000.h.

#define BM_PHY_REG (   page,
  reg 
)
Value:
(((page) & 0xFFFF) << PHY_PAGE_SHIFT) |\
(((reg) & ~MAX_PHY_REG_ADDRESS) << (PHY_UPPER_SHIFT - PHY_PAGE_SHIFT)))

Definition at line 101 of file e1000.h.

#define BM_PORT_CTRL_PAGE   769

Definition at line 98 of file e1000.h.

#define BM_PORT_GEN_CFG   PHY_REG(BM_PORT_CTRL_PAGE, 17)

Definition at line 107 of file e1000.h.

#define BM_RAR_CTRL (   _i)    (BM_PHY_REG(BM_WUC_PAGE, 19 + ((_i) << 2)))

Definition at line 115 of file e1000.h.

#define BM_RAR_H (   _i)    (BM_PHY_REG(BM_WUC_PAGE, 18 + ((_i) << 2)))

Definition at line 114 of file e1000.h.

#define BM_RAR_L (   _i)    (BM_PHY_REG(BM_WUC_PAGE, 16 + ((_i) << 2)))

Definition at line 112 of file e1000.h.

#define BM_RAR_M (   _i)    (BM_PHY_REG(BM_WUC_PAGE, 17 + ((_i) << 2)))

Definition at line 113 of file e1000.h.

#define BM_RCTL   PHY_REG(BM_WUC_PAGE, 0)

Definition at line 108 of file e1000.h.

#define BM_RCTL_BAM   0x0020 /* Broadcast Accept Mode */

Definition at line 122 of file e1000.h.

#define BM_RCTL_MO_MASK   (3 << 3) /* Multicast Offset Mask */

Definition at line 121 of file e1000.h.

#define BM_RCTL_MO_SHIFT   3 /* Multicast Offset Shift */

Definition at line 120 of file e1000.h.

#define BM_RCTL_MPE   0x0002 /* Multicast Promiscuous Mode */

Definition at line 119 of file e1000.h.

#define BM_RCTL_PMCF   0x0040 /* Pass MAC Control Frames */

Definition at line 123 of file e1000.h.

#define BM_RCTL_RFCE   0x0080 /* Rx Flow Control Enable */

Definition at line 124 of file e1000.h.

#define BM_RCTL_UPE   0x0001 /* Unicast Promiscuous Mode */

Definition at line 118 of file e1000.h.

#define BM_WUC   PHY_REG(BM_WUC_PAGE, 1)

Definition at line 109 of file e1000.h.

#define BM_WUFC   PHY_REG(BM_WUC_PAGE, 2)

Definition at line 110 of file e1000.h.

#define BM_WUS   PHY_REG(BM_WUC_PAGE, 3)

Definition at line 111 of file e1000.h.

#define BURST_RADV   0x20

Definition at line 173 of file e1000.h.

#define BURST_RDTR   0x20

Definition at line 172 of file e1000.h.

#define DEFAULT_JUMBO   9234

Definition at line 95 of file e1000.h.

#define DEFAULT_RADV   8

Definition at line 171 of file e1000.h.

#define DEFAULT_RDTR   0

Definition at line 170 of file e1000.h.

#define E1000_CHECK_RESET_COUNT   25

Definition at line 168 of file e1000.h.

#define E1000_CONTEXT_DESC (   R,
  i 
)    E1000_GET_DESC(R, i, e1000_context_desc)

Definition at line 480 of file e1000.h.

#define E1000_DEFAULT_RXD   256

Definition at line 71 of file e1000.h.

#define E1000_DEFAULT_TXD   256

Definition at line 67 of file e1000.h.

#define E1000_EEPROM_APME   0x0400

Definition at line 88 of file e1000.h.

#define E1000_ERT_2048   0x100

Definition at line 79 of file e1000.h.

#define E1000_FC_PAUSE_TIME   0x0680 /* 858 usec */

Definition at line 81 of file e1000.h.

#define E1000_FCRTV_PCH   0x05F40 /* PCH Flow Control Refresh Timer Value */

Definition at line 142 of file e1000.h.

#define E1000_GET_DESC (   R,
  i,
  type 
)    (&(((struct type *)((R).desc))[i]))

Definition at line 478 of file e1000.h.

#define E1000_ICH_FWSM_PCIM2PCI   0x01000000 /* ME PCIm-to-PCI active */

Definition at line 158 of file e1000.h.

#define E1000_ICH_FWSM_PCIM2PCI_COUNT   2000

Definition at line 159 of file e1000.h.

#define E1000_MAX_ITR_USECS   10000 /* 100 irq/sec */

Definition at line 76 of file e1000.h.

#define E1000_MAX_RXD   4096

Definition at line 72 of file e1000.h.

#define E1000_MAX_TXD   4096

Definition at line 68 of file e1000.h.

#define E1000_MIN_ITR_USECS   10 /* 100000 irq/sec */

Definition at line 75 of file e1000.h.

#define E1000_MIN_RXD   64

Definition at line 73 of file e1000.h.

#define E1000_MIN_TXD   64

Definition at line 69 of file e1000.h.

#define E1000_MNG_VLAN_NONE   (-1)

Definition at line 90 of file e1000.h.

#define E1000_RDTR_FPD   (1 << 31)

Definition at line 195 of file e1000.h.

#define E1000_READ_REG_ARRAY (   a,
  reg,
  offset 
)    (readl((a)->hw_addr + reg + ((offset) << 2)))

Definition at line 791 of file e1000.h.

#define E1000_RX_BUFFER_WRITE   16 /* Must be power of 2 */

Definition at line 85 of file e1000.h.

#define E1000_RX_DESC_EXT (   R,
  i 
)    (&(((union e1000_rx_desc_extended *)((R).desc))[i]))

Definition at line 476 of file e1000.h.

#define E1000_RX_DESC_PS (   R,
  i 
)    (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))

Definition at line 474 of file e1000.h.

#define E1000_RXDCTL_DMA_BURST_ENABLE
Value:
(0x01000000 | /* set descriptor granularity */ \
(4 << 16) | /* set writeback threshold */ \
(4 << 8) | /* set prefetch threshold */ \
0x20) /* set hthresh */

Definition at line 188 of file e1000.h.

#define E1000_TIDV_FPD   (1 << 31)

Definition at line 194 of file e1000.h.

#define E1000_TX_DESC (   R,
  i 
)    E1000_GET_DESC(R, i, e1000_tx_desc)

Definition at line 479 of file e1000.h.

#define E1000_TXDCTL_DMA_BURST_ENABLE
Value:
(E1000_TXDCTL_GRAN | /* set descriptor granularity */ \
E1000_TXDCTL_COUNT_DESC | \
(1 << 16) | /* wthresh must be +1 more than desired */\
(1 << 8) | /* hthresh */ \
0x1f) /* pthresh */

Definition at line 181 of file e1000.h.

#define E1000_WRITE_REG_ARRAY (   a,
  reg,
  offset,
  value 
)    (__ew32((a), (reg + ((offset) << 2)), (value)))

Definition at line 788 of file e1000.h.

#define E1000E_INT_MODE_LEGACY   0

Definition at line 62 of file e1000.h.

#define E1000E_INT_MODE_MSI   1

Definition at line 63 of file e1000.h.

#define E1000E_INT_MODE_MSIX   2

Definition at line 64 of file e1000.h.

#define e1e_flush ( )    er32(STATUS)

Definition at line 786 of file e1000.h.

#define e_dbg (   format,
  arg... 
)    netdev_dbg(hw->adapter->netdev, format, ## arg)

Definition at line 49 of file e1000.h.

#define e_err (   format,
  arg... 
)    netdev_err(adapter->netdev, format, ## arg)

Definition at line 51 of file e1000.h.

#define e_info (   format,
  arg... 
)    netdev_info(adapter->netdev, format, ## arg)

Definition at line 53 of file e1000.h.

#define e_notice (   format,
  arg... 
)    netdev_notice(adapter->netdev, format, ## arg)

Definition at line 57 of file e1000.h.

#define e_warn (   format,
  arg... 
)    netdev_warn(adapter->netdev, format, ## arg)

Definition at line 55 of file e1000.h.

#define er32 (   reg)    __er32(hw, E1000_##reg)

Definition at line 752 of file e1000.h.

#define ew32 (   reg,
  val 
)    __ew32(hw, E1000_##reg, (val))

Definition at line 784 of file e1000.h.

#define FLAG2_CHECK_PHY_HANG   (1 << 9)

Definition at line 469 of file e1000.h.

#define FLAG2_CRC_STRIPPING   (1 << 0)

Definition at line 460 of file e1000.h.

#define FLAG2_DFLT_CRC_STRIPPING   (1 << 12)

Definition at line 472 of file e1000.h.

#define FLAG2_DISABLE_AIM   (1 << 8)

Definition at line 468 of file e1000.h.

#define FLAG2_DISABLE_ASPM_L0S   (1 << 7)

Definition at line 467 of file e1000.h.

#define FLAG2_DISABLE_ASPM_L1   (1 << 3)

Definition at line 463 of file e1000.h.

#define FLAG2_DMA_BURST   (1 << 6)

Definition at line 466 of file e1000.h.

#define FLAG2_HAS_EEE   (1 << 5)

Definition at line 465 of file e1000.h.

#define FLAG2_HAS_PHY_STATS   (1 << 4)

Definition at line 464 of file e1000.h.

#define FLAG2_HAS_PHY_WAKEUP   (1 << 1)

Definition at line 461 of file e1000.h.

#define FLAG2_IS_DISCARDING   (1 << 2)

Definition at line 462 of file e1000.h.

#define FLAG2_NO_DISABLE_RX   (1 << 10)

Definition at line 470 of file e1000.h.

#define FLAG2_PCIM2PCI_ARBITER_WA   (1 << 11)

Definition at line 471 of file e1000.h.

#define FLAG_APME_CHECK_PORT_B   (1 << 17)

Definition at line 444 of file e1000.h.

#define FLAG_APME_IN_CTRL3   (1 << 16)

Definition at line 443 of file e1000.h.

#define FLAG_APME_IN_WUC   (1 << 15)

Definition at line 442 of file e1000.h.

#define FLAG_DISABLE_FC_PAUSE_TIME   (1 << 18)

Definition at line 445 of file e1000.h.

#define FLAG_HAS_AMT   (1 << 0)

Definition at line 427 of file e1000.h.

#define FLAG_HAS_CTRLEXT_ON_LOAD   (1 << 5)

Definition at line 432 of file e1000.h.

#define FLAG_HAS_FLASH   (1 << 1)

Definition at line 428 of file e1000.h.

#define FLAG_HAS_HW_VLAN_FILTER   (1 << 2)

Definition at line 429 of file e1000.h.

#define FLAG_HAS_JUMBO_FRAMES   (1 << 7)

Definition at line 434 of file e1000.h.

#define FLAG_HAS_MSIX   (1 << 10)

Definition at line 437 of file e1000.h.

#define FLAG_HAS_SMART_POWER_DOWN   (1 << 11)

Definition at line 438 of file e1000.h.

#define FLAG_HAS_SWSM_ON_LOAD   (1 << 6)

Definition at line 433 of file e1000.h.

#define FLAG_HAS_WOL   (1 << 3)

Definition at line 430 of file e1000.h.

#define FLAG_IS_ICH   (1 << 9)

Definition at line 436 of file e1000.h.

#define FLAG_IS_QUAD_PORT   (1 << 13)

Definition at line 440 of file e1000.h.

#define FLAG_IS_QUAD_PORT_A   (1 << 12)

Definition at line 439 of file e1000.h.

#define FLAG_LSC_GIG_SPEED_DROP   (1 << 25)

Definition at line 452 of file e1000.h.

#define FLAG_MNG_PT_ENABLED   (1 << 20)

Definition at line 447 of file e1000.h.

#define FLAG_MSI_ENABLED   (1 << 27)

Definition at line 454 of file e1000.h.

#define FLAG_MSI_TEST_FAILED   (1 << 31)

Definition at line 458 of file e1000.h.

#define FLAG_NO_WAKE_UCAST   (1 << 19)

Definition at line 446 of file e1000.h.

#define FLAG_READ_ONLY_NVM   (1 << 8)

Definition at line 435 of file e1000.h.

#define FLAG_RESET_OVERWRITES_LAA   (1 << 21)

Definition at line 448 of file e1000.h.

#define FLAG_RX_NEEDS_RESTART   (1 << 24)

Definition at line 451 of file e1000.h.

#define FLAG_RX_RESTART_NOW   (1 << 30)

Definition at line 457 of file e1000.h.

#define FLAG_SMART_POWER_DOWN   (1 << 26)

Definition at line 453 of file e1000.h.

#define FLAG_TARC_SET_BIT_ZERO   (1 << 23)

Definition at line 450 of file e1000.h.

#define FLAG_TARC_SPEED_MODE_BIT   (1 << 22)

Definition at line 449 of file e1000.h.

#define FLAG_TSO_FORCE   (1 << 29)

Definition at line 456 of file e1000.h.

#define HV_COLC_LOWER   PHY_REG(HV_STATS_PAGE, 26)

Definition at line 136 of file e1000.h.

#define HV_COLC_UPPER   PHY_REG(HV_STATS_PAGE, 25) /* Collision Count */

Definition at line 135 of file e1000.h.

#define HV_DC_LOWER   PHY_REG(HV_STATS_PAGE, 28)

Definition at line 138 of file e1000.h.

#define HV_DC_UPPER   PHY_REG(HV_STATS_PAGE, 27) /* Defer Count */

Definition at line 137 of file e1000.h.

#define HV_ECOL_LOWER   PHY_REG(HV_STATS_PAGE, 19)

Definition at line 130 of file e1000.h.

#define HV_ECOL_UPPER   PHY_REG(HV_STATS_PAGE, 18) /* Excessive Coll. Count */

Definition at line 129 of file e1000.h.

#define HV_LATECOL_LOWER   PHY_REG(HV_STATS_PAGE, 24)

Definition at line 134 of file e1000.h.

#define HV_LATECOL_UPPER   PHY_REG(HV_STATS_PAGE, 23) /* Late Collision Count */

Definition at line 133 of file e1000.h.

#define HV_M_STATUS   26

Definition at line 152 of file e1000.h.

#define HV_M_STATUS_AUTONEG_COMPLETE   0x1000

Definition at line 153 of file e1000.h.

#define HV_M_STATUS_LINK_UP   0x0040

Definition at line 156 of file e1000.h.

#define HV_M_STATUS_SPEED_1000   0x0200

Definition at line 155 of file e1000.h.

#define HV_M_STATUS_SPEED_MASK   0x0300

Definition at line 154 of file e1000.h.

#define HV_MCC_LOWER   PHY_REG(HV_STATS_PAGE, 21)

Definition at line 132 of file e1000.h.

#define HV_MCC_UPPER   PHY_REG(HV_STATS_PAGE, 20) /* Multiple Coll. Count */

Definition at line 131 of file e1000.h.

#define HV_SCC_LOWER   PHY_REG(HV_STATS_PAGE, 17)

Definition at line 128 of file e1000.h.

#define HV_SCC_UPPER   PHY_REG(HV_STATS_PAGE, 16) /* Single Collision Count */

Definition at line 127 of file e1000.h.

#define HV_STATS_PAGE   778

Definition at line 126 of file e1000.h.

#define HV_TNCRS_LOWER   PHY_REG(HV_STATS_PAGE, 30)

Definition at line 140 of file e1000.h.

#define HV_TNCRS_UPPER   PHY_REG(HV_STATS_PAGE, 29) /* Transmit with no CRS */

Definition at line 139 of file e1000.h.

#define LINK_TIMEOUT   100

Definition at line 162 of file e1000.h.

#define PHY_UPPER_SHIFT   21

Definition at line 100 of file e1000.h.

#define PS_PAGE_BUFFERS   (MAX_PS_BUFFERS - 1)

Definition at line 93 of file e1000.h.

Enumeration Type Documentation

Enumerator:
board_82571 
board_82572 
board_82573 
board_82574 
board_82583 
board_80003es2lan 
board_ich8lan 
board_ich9lan 
board_ich10lan 
board_pchlan 
board_pch2lan 
board_pch_lpt 

Definition at line 197 of file e1000.h.

Enumerator:
__E1000_TESTING 
__E1000_RESETTING 
__E1000_DOWN 
__E1000_TESTING 
__E1000_RESETTING 
__E1000_ACCESS_SHARED_RESOURCE 
__E1000_DOWN 
__IGB_TESTING 
__IGB_RESETTING 
__IGB_DOWN 

Definition at line 482 of file e1000.h.

Enumerator:
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 
lowest_latency 
low_latency 
bulk_latency 
latency_invalid 

Definition at line 489 of file e1000.h.

Function Documentation

s32 e1000_check_alt_mac_addr_generic ( struct e1000_hw hw)

e1000_check_alt_mac_addr_generic - Check for alternate MAC addr : pointer to the HW structure

Checks the nvm for an alternate MAC address. An alternate MAC address can be setup by pre-boot software and must be treated like a permanent address and must override the actual permanent MAC address. If an alternate MAC address is found it is programmed into RAR0, replacing the permanent address that was installed into RAR0 by the Si on reset. This function will return SUCCESS unless it encounters an error while reading the EEPROM.

Definition at line 166 of file mac.c.

bool e1000_check_phy_82574 ( struct e1000_hw hw)

e1000_check_phy_82574 - check 82574 phy hung state : pointer to the HW structure

Returns whether phy is hung or not

Definition at line 1424 of file 82571.c.

s32 e1000_check_polarity_82577 ( struct e1000_hw hw)

e1000_check_polarity_82577 - Checks the polarity. : pointer to the HW structure

Success returns 0, Failure returns -E1000_ERR_PHY (-2)

Polarity is determined based on the PHY specific status register.

Definition at line 3239 of file phy.c.

s32 e1000_check_polarity_ife ( struct e1000_hw hw)

e1000_check_polarity_ife - Check cable polarity for IFE PHY : pointer to the HW structure

Polarity is determined on the polarity reversal feature being enabled.

Definition at line 1742 of file phy.c.

s32 e1000_check_polarity_igp ( struct e1000_hw hw)

e1000_check_polarity_igp - Checks the polarity. : pointer to the HW structure

Success returns 0, Failure returns -E1000_ERR_PHY (-2)

Polarity is determined based on the PHY port status register, and the current speed (since there is no polarity at 100Mbps).

Definition at line 1699 of file phy.c.

s32 e1000_check_polarity_m88 ( struct e1000_hw hw)

e1000_check_polarity_m88 - Checks the polarity. : pointer to the HW structure

Success returns 0, Failure returns -E1000_ERR_PHY (-2)

Polarity is determined based on the PHY specific status register.

Definition at line 1674 of file phy.c.

void e1000_clear_vfta_generic ( struct e1000_hw hw)

e1000_clear_vfta_generic - Clear VLAN filter table : pointer to the HW structure

Clears the register array which contains the VLAN filter table by setting all the values to 0.

Definition at line 104 of file mac.c.

s32 e1000_configure_k1_ich8lan ( struct e1000_hw hw,
bool  k1_enable 
)

e1000_configure_k1_ich8lan - Configure K1 power state : pointer to the HW structure : K1 state to configure

Configure the K1 power state based on the provided parameter. Assumes semaphore already acquired.

Success returns 0, Failure returns -E1000_ERR_PHY (-2)

Definition at line 1585 of file ich8lan.c.

s32 e1000_copper_link_setup_82577 ( struct e1000_hw hw)

e1000_copper_link_setup_82577 - Setup 82577 PHY for copper link : pointer to the HW structure

Sets up Carrier-sense on Transmit and downshift values.

Definition at line 687 of file phy.c.

void e1000_copy_rx_addrs_to_phy_ich8lan ( struct e1000_hw hw)

e1000_copy_rx_addrs_to_phy_ich8lan - Copy Rx addresses from MAC to PHY : pointer to the HW structure

Definition at line 1798 of file ich8lan.c.

s32 e1000_disable_phy_wakeup_reg_access_bm ( struct e1000_hw hw,
u16 phy_reg 
)

e1000_disable_phy_wakeup_reg_access_bm - disable access to BM wakeup regs : pointer to the HW structure : pointer to original contents of BM_WUC_ENABLE_REG

Restore BM_WUC_ENABLE_REG to its original value.

Assumes semaphore already acquired and *phy_reg is the contents of the BM_WUC_ENABLE_REG before register(s) on BM_WUC_PAGE were accessed by caller.

Definition at line 2719 of file phy.c.

s32 e1000_enable_phy_wakeup_reg_access_bm ( struct e1000_hw hw,
u16 phy_reg 
)

e1000_enable_phy_wakeup_reg_access_bm - enable access to BM wakeup registers : pointer to the HW structure : pointer to store original contents of BM_WUC_ENABLE_REG

Assumes semaphore already acquired and phy_reg points to a valid memory address to store contents of the BM_WUC_ENABLE_REG register.

Definition at line 2664 of file phy.c.

s32 e1000_get_cable_length_82577 ( struct e1000_hw hw)

e1000_get_cable_length_82577 - Determine cable length for 82577 PHY : pointer to the HW structure

Reads the diagnostic status register and verifies result is valid before placing it in the phy_cable_length field.

Definition at line 3369 of file phy.c.

s32 e1000_get_phy_info_82577 ( struct e1000_hw hw)

e1000_get_phy_info_82577 - Retrieve I82577 PHY information : pointer to the HW structure

Read PHY status to determine if link is up. If link is up, then set/determine 10base-T extended distance and polarity correction. Read PHY port status to determine MDI/MDIx and speed. Based on the speed, determine on the cable length, local and remote receiver.

Definition at line 3308 of file phy.c.

s32 e1000_get_phy_info_ife ( struct e1000_hw hw)

e1000_get_phy_info_ife - Retrieves various IFE PHY states : pointer to the HW structure

Populates "phy" structure with various feature states.

Definition at line 2098 of file phy.c.

s32 e1000_link_stall_workaround_hv ( struct e1000_hw hw)

e1000_link_stall_workaround_hv - Si workaround : pointer to the HW structure

This function works around a Si bug where the link partner can get a link up indication before the PHY does. If small packets are sent by the link partner they can be placed in the packet buffer without being properly accounted for by the PHY and will stall preventing further packets from being received. The workaround is to clear the packet buffer after the PHY detects link up.

Definition at line 3195 of file phy.c.

s32 e1000_lv_jumbo_workaround_ich8lan ( struct e1000_hw hw,
bool  enable 
)

e1000_lv_jumbo_workaround_ich8lan - required for jumbo frame operation with 82579 PHY : pointer to the HW structure : flag to enable/disable workaround when enabling/disabling jumbos

Definition at line 1839 of file ich8lan.c.

s32 e1000_phy_force_speed_duplex_82577 ( struct e1000_hw hw)

e1000_phy_force_speed_duplex_82577 - Force speed/duplex for I82577 PHY : pointer to the HW structure

Calls the PHY setup function to force speed and duplex.

Definition at line 3261 of file phy.c.

s32 e1000_phy_force_speed_duplex_ife ( struct e1000_hw hw)

e1000_phy_force_speed_duplex_ife - Force PHY speed & duplex : pointer to the HW structure

Forces the speed and duplex settings of the PHY. This is a function pointer entry point only called by PHY setup routines.

Definition at line 1433 of file phy.c.

void e1000_power_down_phy_copper ( struct e1000_hw hw)

e1000_power_down_phy_copper - Restore copper link in case of PHY power down : pointer to the HW structure

In the case of a PHY power down to save power, or to turn off link during a driver unload, or wake on lan is not enabled, restore the link to previous settings.

Definition at line 2843 of file phy.c.

void e1000_power_up_phy_copper ( struct e1000_hw hw)

e1000_power_up_phy_copper - Restore copper link in case of PHY power down : pointer to the HW structure

In the case of a PHY power down to save power, or to turn off link during a driver unload, or wake on lan is not enabled, restore the link to previous settings.

Definition at line 2825 of file phy.c.

s32 e1000_read_mac_addr_generic ( struct e1000_hw hw)

e1000_read_mac_addr_generic - Read device MAC address : pointer to the HW structure

Reads the device MAC address from the EEPROM and stores the value. Since devices with two ports use the same EEPROM, we increment the last bit in the MAC address for the second port.

Definition at line 546 of file nvm.c.

s32 e1000_read_pba_string_generic ( struct e1000_hw hw,
u8 pba_num,
u32  pba_num_size 
)

e1000_read_pba_string_generic - Read device part number : pointer to the HW structure : pointer to device part number : size of part number buffer

Reads the product board assembly (PBA) number from the EEPROM and stores the value in pba_num.

Definition at line 438 of file nvm.c.

s32 e1000_read_phy_reg_hv ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000_read_phy_reg_hv - Read HV PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore then reads the PHY register at offset and stores the retrieved information in data. Release the acquired semaphore before exiting.

Definition at line 2967 of file phy.c.

s32 e1000_read_phy_reg_hv_locked ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000_read_phy_reg_hv_locked - Read HV PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Reads the PHY register at offset and stores the retrieved information in data. Assumes semaphore already acquired.

Definition at line 2981 of file phy.c.

s32 e1000_read_phy_reg_page_hv ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000_read_phy_reg_page_hv - Read HV PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Reads the PHY register at offset and stores the retrieved information in data. Assumes semaphore already acquired and page already set.

Definition at line 2995 of file phy.c.

void e1000_resume_workarounds_pchlan ( struct e1000_hw hw)

e1000_resume_workarounds_pchlan - workarounds needed during Sx->S0 : pointer to the HW structure

During Sx to S0 transitions on non-managed devices or managed devices on which PHY resets are not blocked, if the PHY registers cannot be accessed properly by the s/w toggle the LANPHYPC value to power cycle the PHY. On i217, setup Intel Rapid Start Technology.

Definition at line 4165 of file ich8lan.c.

void e1000_set_lan_id_multi_port_pcie ( struct e1000_hw hw)

e1000_set_lan_id_multi_port_pcie - Set LAN id for PCIe multiple port devices

: pointer to the HW structure

Determines the LAN function id by reading memory-mapped registers and swaps the port value if requested.

Definition at line 71 of file mac.c.

void e1000_set_lan_id_single_port ( struct e1000_hw hw)

e1000_set_lan_id_single_port - Set LAN id for a single port device : pointer to the HW structure

Sets the LAN function id to zero for a single port device.

Definition at line 90 of file mac.c.

s32 e1000_set_page_igp ( struct e1000_hw hw,
u16  page 
)

Definition at line 358 of file phy.c.

void e1000_suspend_workarounds_ich8lan ( struct e1000_hw hw)

e1000_suspend_workarounds_ich8lan - workarounds needed during S0->Sx : pointer to the HW structure

During S0 to Sx transition, it is possible the link remains at gig instead of negotiating to a lower speed. Before going to Sx, set 'Gig Disable' to force link speed negotiation to a lower speed based on the LPLU setting in the NVM or custom setting. For PCH and newer parts, the OEM bits PHY register (LED, GbE disable and LPLU configurations) also needs to be written. Parts that support (and are linked to a partner which support) EEE in 100Mbps should disable LPLU since 100Mbps w/ EEE requires less power than 10Mbps w/o EEE.

Definition at line 4057 of file ich8lan.c.

s32 e1000_write_phy_reg_hv ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000_write_phy_reg_hv - Write HV PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore then writes the data to PHY register at the offset. Release the acquired semaphores before exiting.

Definition at line 3091 of file phy.c.

s32 e1000_write_phy_reg_hv_locked ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000_write_phy_reg_hv_locked - Write HV PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Writes the data to PHY register at the offset. Assumes semaphore already acquired.

Definition at line 3105 of file phy.c.

s32 e1000_write_phy_reg_page_hv ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000_write_phy_reg_page_hv - Write HV PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Writes the data to PHY register at the offset. Assumes semaphore already acquired and page already set.

Definition at line 3119 of file phy.c.

void e1000_write_vfta_generic ( struct e1000_hw hw,
u32  offset,
u32  value 
)

e1000_write_vfta_generic - Write value to VLAN filter table : pointer to the HW structure : register offset in VLAN filter table : register value written to VLAN filter table

Writes value at the given offset in the register array which stores the VLAN filter table.

Definition at line 123 of file mac.c.

s32 e1000e_acquire_nvm ( struct e1000_hw hw)

e1000e_acquire_nvm - Generic request for access to EEPROM : pointer to the HW structure

Set the EEPROM access request bit and wait for EEPROM access grant bit. Return successful if access grant bit set, else clear the request for EEPROM access and return -E1000_ERR_NVM (-1).

Definition at line 176 of file nvm.c.

s32 e1000e_blink_led_generic ( struct e1000_hw hw)

e1000e_blink_led_generic - Blink LED : pointer to the HW structure

Blink the LEDs which are set to be on.

Definition at line 1513 of file mac.c.

s32 e1000e_check_downshift ( struct e1000_hw hw)

e1000e_check_downshift - Checks whether a downshift in speed occurred : pointer to the HW structure

Success returns 0, Failure returns 1

A downshift is detected by querying the PHY link health.

Definition at line 1633 of file phy.c.

s32 e1000e_check_for_copper_link ( struct e1000_hw hw)

e1000e_check_for_copper_link - Check for link (Copper) : pointer to the HW structure

Checks to see of the link status of the hardware has changed. If a change in link status has been detected, then we read the PHY registers to get the current speed/duplex if link exists.

Definition at line 420 of file mac.c.

s32 e1000e_check_for_fiber_link ( struct e1000_hw hw)

e1000e_check_for_fiber_link - Check for link (Fiber) : pointer to the HW structure

Checks for link up on the hardware. If link is not up and we have a signal, then we need to force link up.

Definition at line 489 of file mac.c.

s32 e1000e_check_for_serdes_link ( struct e1000_hw hw)

e1000e_check_for_serdes_link - Check for link (Serdes) : pointer to the HW structure

Checks for link up on the hardware. If link is not up and we have a signal, then we need to force link up.

Definition at line 556 of file mac.c.

bool e1000e_check_mng_mode_generic ( struct e1000_hw hw)

e1000e_check_mng_mode_generic - Generic check management mode : pointer to the HW structure

Reads the firmware semaphore register and returns true (>0) if manageability is enabled, else false (0).

Definition at line 115 of file manage.c.

void e1000e_check_options ( struct e1000_adapter adapter)

e1000e_check_options - Range Checking for Command Line Parameters : board private structure

This routine checks all command line parameters for valid user input. If an invalid value is given, or if no user specified value exists, a default value is used. The final value is stored in a variable in the adapter structure.

Definition at line 252 of file param.c.

s32 e1000e_check_reset_block_generic ( struct e1000_hw hw)

e1000e_check_reset_block_generic - Check if PHY reset is blocked : pointer to the HW structure

Read the PHY management control register and check whether a PHY reset is blocked. If a reset is not blocked return 0, otherwise return E1000_BLK_PHY_RESET (12).

Definition at line 110 of file phy.c.

s32 e1000e_cleanup_led_generic ( struct e1000_hw hw)

e1000e_cleanup_led_generic - Set LED config to default operation : pointer to the HW structure

Remove the current LED configuration and set the LED configuration to the default value, saved from the EEPROM.

Definition at line 1501 of file mac.c.

void e1000e_clear_hw_cntrs_base ( struct e1000_hw hw)

e1000e_clear_hw_cntrs_base - Clear base hardware counters : pointer to the HW structure

Clears the base hardware counters by reading the counter registers.

Definition at line 371 of file mac.c.

s32 e1000e_commit_phy ( struct e1000_hw hw)

e1000e_commit_phy - Soft PHY reset : pointer to the HW structure

Performs a soft PHY reset on those that apply. This is a function pointer entry point called by drivers.

Definition at line 2861 of file phy.c.

void e1000e_config_collision_dist_generic ( struct e1000_hw hw)

e1000e_config_collision_dist_generic - Configure collision distance : pointer to the HW structure

Configures the collision distance to the default value and is used during link setup.

Definition at line 932 of file mac.c.

s32 e1000e_config_fc_after_link_up ( struct e1000_hw hw)

e1000e_config_fc_after_link_up - Configures flow control after link : pointer to the HW structure

Checks the status of auto-negotiation after link up to ensure that the speed and duplex were not forced. If the link needed to be forced, then flow control needs to be forced also. If auto-negotiation is enabled and did not fail, then we configure flow control based on our link partner.

Definition at line 1053 of file mac.c.

s32 e1000e_copper_link_setup_igp ( struct e1000_hw hw)

e1000e_copper_link_setup_igp - Setup igp PHY's for copper link : pointer to the HW structure

Sets up LPLU, MDI/MDI-X, polarity, Smartspeed and Master/Slave config for igp PHY's.

Definition at line 890 of file phy.c.

s32 e1000e_copper_link_setup_m88 ( struct e1000_hw hw)

e1000e_copper_link_setup_m88 - Setup m88 PHY's for copper link : pointer to the HW structure

Sets up MDI/MDI-X and polarity for m88 PHY's. If necessary, transmit clock and downshift values are set also.

Definition at line 742 of file phy.c.

s32 e1000e_determine_phy_address ( struct e1000_hw hw)

e1000e_determine_phy_address - Determines PHY address. : pointer to the HW structure

This uses a trial and error method to loop through possible PHY addresses. It tests each by reading the PHY ID registers and checking for a match.

Definition at line 2404 of file phy.c.

s32 e1000e_disable_pcie_master ( struct e1000_hw hw)

e1000e_disable_pcie_master - Disables PCI-express master access : pointer to the HW structure

Returns 0 if successful, else returns -10 (-E1000_ERR_MASTER_REQUESTS_PENDING) if master disable bit has not caused the master requests to be disabled.

Disables PCI-Express master access and verifies there are no pending requests.

Definition at line 1624 of file mac.c.

void e1000e_down ( struct e1000_adapter adapter)

Definition at line 3644 of file netdev.c.

bool e1000e_enable_mng_pass_thru ( struct e1000_hw hw)

e1000e_enable_mng_pass_thru - Check if management passthrough is needed : pointer to the HW structure

Verifies the hardware needs to leave interface enabled so that frames can be directed to and from the management interface.

Definition at line 332 of file manage.c.

bool e1000e_enable_tx_pkt_filtering ( struct e1000_hw hw)

e1000e_enable_tx_pkt_filtering - Enable packet filtering on Tx : pointer to the HW structure

Enables packet filtering on transmit packets if manageability is enabled and host interface is enabled.

Definition at line 130 of file manage.c.

s32 e1000e_force_mac_fc ( struct e1000_hw hw)

e1000e_force_mac_fc - Force the MAC's flow control settings : pointer to the HW structure

Force the MAC's flow control settings. Sets the TFCE and RFCE bits in the device control register to reflect the adapter settings. TFCE and RFCE need to be explicitly set by software when a copper PHY is used because autonegotiation is managed by the PHY rather than the MAC. Software must also configure these bits when link is forced on a fiber connection.

Definition at line 992 of file mac.c.

void e1000e_free_rx_resources ( struct e1000_ring rx_ring)

e1000e_free_rx_resources - Free Rx Resources : Rx descriptor ring

Free all receive software resources

Definition at line 2339 of file netdev.c.

void e1000e_free_tx_resources ( struct e1000_ring tx_ring)

e1000e_free_tx_resources - Free Tx Resources per Queue : Tx descriptor ring

Free all transmit software resources

Definition at line 2318 of file netdev.c.

s32 e1000e_get_auto_rd_done ( struct e1000_hw hw)

e1000e_get_auto_rd_done - Check for auto read completion : pointer to the HW structure

Check EEPROM for Auto Read done bit.

Definition at line 1357 of file mac.c.

s32 e1000e_get_bus_info_pcie ( struct e1000_hw hw)

e1000e_get_bus_info_pcie - Get PCIe bus information : pointer to the HW structure

Determines and stores the system bus information for a particular network interface. The following bus information is determined and stored: bus speed, bus width, type (PCIe), and PCIe function.

Definition at line 39 of file mac.c.

s32 e1000e_get_cable_length_igp_2 ( struct e1000_hw hw)

e1000e_get_cable_length_igp_2 - Determine cable length for igp2 PHY : pointer to the HW structure

The automatic gain control (agc) normalizes the amplitude of the received signal, adjusting for the attenuation produced by the cable. By reading the AGC registers, which represent the combination of coarse and fine gain value, the value can be put into a lookup table to obtain the approximate cable length for each channel.

Definition at line 1896 of file phy.c.

s32 e1000e_get_cable_length_m88 ( struct e1000_hw hw)

e1000e_get_cable_length_m88 - Determine cable length for m88 PHY : pointer to the HW structure

Reads the PHY specific status register to retrieve the cable length information. The cable length is determined by averaging the minimum and maximum values to get the "average" cable length. The m88 PHY has four possible cable length values, which are: Register Value Cable Length 0 < 50 meters 1 50 - 80 meters 2 80 - 110 meters 3 110 - 140 meters 4 > 140 meters

Definition at line 1861 of file phy.c.

s32 e1000e_get_cfg_done ( struct e1000_hw hw)

e1000e_get_cfg_done - Generic configuration done : pointer to the HW structure

Generic function to wait 10 milli-seconds for configuration to complete and return success.

Definition at line 2218 of file phy.c.

void e1000e_get_hw_control ( struct e1000_adapter adapter)

e1000e_get_hw_control - get control of the h/w from f/w : address of board private structure

e1000e_get_hw_control sets {CTRL_EXT|SWSM}:DRV_LOAD bit. For ASF and Pass Through versions of f/w this means that the driver is loaded. For AMT version (only with 82573) of the f/w this means that the network i/f is open.

Definition at line 2135 of file netdev.c.

char* e1000e_get_hw_dev_name ( struct e1000_hw hw)
s32 e1000e_get_hw_semaphore ( struct e1000_hw hw)

e1000e_get_hw_semaphore - Acquire hardware semaphore : pointer to the HW structure

Acquire the HW semaphore to access the PHY or NVM

Definition at line 1293 of file mac.c.

bool e1000e_get_laa_state_82571 ( struct e1000_hw hw)

e1000e_get_laa_state_82571 - Get locally administered address state : pointer to the HW structure

Retrieve and return the current locally administered address state.

Definition at line 1759 of file 82571.c.

s32 e1000e_get_phy_id ( struct e1000_hw hw)

e1000e_get_phy_id - Retrieve the PHY ID and revision : pointer to the HW structure

Reads the PHY registers and stores the PHY ID and possibly the PHY revision in the hardware structure.

Definition at line 127 of file phy.c.

s32 e1000e_get_phy_info_igp ( struct e1000_hw hw)

e1000e_get_phy_info_igp - Retrieve igp PHY information : pointer to the HW structure

Read PHY status to determine if link is up. If link is up, then set/determine 10base-T extended distance and polarity correction. Read PHY port status to determine MDI/MDIx and speed. Based on the speed, determine on the cable length, local and remote receiver.

Definition at line 2038 of file phy.c.

s32 e1000e_get_phy_info_m88 ( struct e1000_hw hw)

e1000e_get_phy_info_m88 - Retrieve PHY information : pointer to the HW structure

Valid for only copper links. Read the PHY status register (sticky read) to verify that link is up. Read the PHY special control register to determine the polarity and 10base-T extended distance. Read the PHY special status register to determine MDI/MDIx and current speed. If speed is 1000, then determine cable length, local and remote receiver.

Definition at line 1965 of file phy.c.

enum e1000_phy_type e1000e_get_phy_type_from_id ( u32  phy_id)

e1000e_get_phy_type_from_id - Get PHY type from id : phy_id read from the phy

Returns the phy type from the id.

Definition at line 2348 of file phy.c.

s32 e1000e_get_speed_and_duplex_copper ( struct e1000_hw hw,
u16 speed,
u16 duplex 
)

e1000e_get_speed_and_duplex_copper - Retrieve current speed/duplex : pointer to the HW structure : stores the current speed : stores the current duplex

Read the status register for the current speed/duplex and store the current speed and duplex for copper connections.

Definition at line 1244 of file mac.c.

s32 e1000e_get_speed_and_duplex_fiber_serdes ( struct e1000_hw hw,
u16 speed,
u16 duplex 
)

e1000e_get_speed_and_duplex_fiber_serdes - Retrieve current speed/duplex : pointer to the HW structure : stores the current speed : stores the current duplex

Sets the speed and duplex to gigabit full duplex (the only possible option) for fiber/serdes links.

Definition at line 1278 of file mac.c.

struct rtnl_link_stats64* e1000e_get_stats64 ( struct net_device netdev,
struct rtnl_link_stats64 stats 
)
read

e1000_get_stats64 - Get System Network Statistics : network interface device structure : rtnl_link_stats64 pointer

Returns the address of the device statistics structure.

Definition at line 5207 of file netdev.c.

void e1000e_gig_downshift_workaround_ich8lan ( struct e1000_hw hw)

e1000e_gig_downshift_workaround_ich8lan - WoL from S5 stops working : pointer to the HW structure

Steps to take when dropping from 1Gb/s (eg. link cable removal (LSC), LPLU, Gig disable, MDIC PHY reset): 1) Set Kumeran Near-end loopback 2) Clear Kumeran Near-end loopback Should only be called for ICH8[m] devices with any 1G Phy.

Definition at line 4021 of file ich8lan.c.

s32 e1000e_id_led_init_generic ( struct e1000_hw hw)

e1000e_id_led_init_generic - : pointer to the HW structure

Definition at line 1405 of file mac.c.

void e1000e_igp3_phy_powerdown_workaround_ich8lan ( struct e1000_hw hw)

e1000_ipg3_phy_powerdown_workaround_ich8lan - Power down workaround on D3 : pointer to the HW structure

Workaround for 82566 power-down on D3 entry: 1) disable gigabit link 2) write VR power-down enable 3) read it back Continue if successful, else issue LCD reset and repeat

Definition at line 3969 of file ich8lan.c.

void e1000e_init_rx_addrs ( struct e1000_hw hw,
u16  rar_count 
)

e1000e_init_rx_addrs - Initialize receive address's : pointer to the HW structure : receive address registers

Setup the receive address registers by setting the base receive address register to the devices MAC address and clearing all the other receive address registers to 0.

Definition at line 138 of file mac.c.

s32 e1000e_led_off_generic ( struct e1000_hw hw)

e1000e_led_off_generic - Turn LED off : pointer to the HW structure

Turn LED off.

Definition at line 1573 of file mac.c.

s32 e1000e_led_on_generic ( struct e1000_hw hw)

e1000e_led_on_generic - Turn LED on : pointer to the HW structure

Turn LED on.

Definition at line 1546 of file mac.c.

s32 e1000e_mng_write_dhcp_info ( struct e1000_hw hw,
u8 buffer,
u16  length 
)

e1000e_mng_write_dhcp_info - Writes DHCP info to host interface : pointer to the HW structure : pointer to the host interface : size of the buffer

Writes the DHCP information to the host interface.

Definition at line 290 of file manage.c.

s32 e1000e_phy_force_speed_duplex_igp ( struct e1000_hw hw)

e1000e_phy_force_speed_duplex_igp - Force speed/duplex for igp PHY : pointer to the HW structure

Calls the PHY setup function to force speed and duplex. Clears the auto-crossover to force MDI manually. Waits for link and returns successful if link up is successful, else -E1000_ERR_PHY (-2).

Definition at line 1259 of file phy.c.

s32 e1000e_phy_force_speed_duplex_m88 ( struct e1000_hw hw)

e1000e_phy_force_speed_duplex_m88 - Force speed/duplex for m88 PHY : pointer to the HW structure

Calls the PHY setup function to force speed and duplex. Clears the auto-crossover to force MDI manually. Resets the PHY to commit the changes. If time expires while waiting for link up, we reset the DSP. After reset, TX_CLK and CRS on Tx must be set. Return successful upon successful completion, else return corresponding error code.

Definition at line 1324 of file phy.c.

void e1000e_phy_force_speed_duplex_setup ( struct e1000_hw hw,
u16 phy_ctrl 
)

e1000e_phy_force_speed_duplex_setup - Configure forced PHY speed/duplex : pointer to the HW structure : pointer to current value of PHY_CONTROL

Forces speed and duplex on the PHY by doing the following: disable flow control, force speed/duplex on the MAC, disable auto speed detection, disable auto-negotiation, configure duplex, configure speed, configure the collision distance, write configuration to CTRL register. The caller must write to the PHY_CONTROL register for these settings to take affect.

Definition at line 1499 of file phy.c.

s32 e1000e_phy_has_link_generic ( struct e1000_hw hw,
u32  iterations,
u32  usec_interval,
bool success 
)

e1000e_phy_has_link_generic - Polls PHY for link : pointer to the HW structure : number of times to poll for link : delay between polling attempts : pointer to whether polling was successful or not

Polls the PHY status register for link, 'iterations' number of times.

Definition at line 1810 of file phy.c.

s32 e1000e_phy_hw_reset_generic ( struct e1000_hw hw)

e1000e_phy_hw_reset_generic - PHY hardware reset : pointer to the HW structure

Verify the reset block is not blocking us from resetting. Acquire semaphore (if necessary) and read/set/write the device control reset bit in the PHY. Wait the appropriate delay time for the device to reset and release the semaphore (if necessary).

Definition at line 2179 of file phy.c.

s32 e1000e_phy_init_script_igp3 ( struct e1000_hw hw)

e1000e_phy_init_script_igp3 - Inits the IGP3 PHY : pointer to the HW structure

Initializes a Intel Gigabit PHY3 when an EEPROM is not present.

Definition at line 2231 of file phy.c.

s32 e1000e_phy_reset_dsp ( struct e1000_hw hw)

e1000e_phy_reset_dsp - Reset PHY DSP : pointer to the HW structure

Reset the digital signal processor.

Definition at line 166 of file phy.c.

s32 e1000e_phy_sw_reset ( struct e1000_hw hw)

e1000e_phy_sw_reset - PHY software reset : pointer to the HW structure

Does a software reset of the PHY by reading the PHY control register and setting/write the control register reset bit to the PHY.

Definition at line 2151 of file phy.c.

s32 e1000e_poll_eerd_eewr_done ( struct e1000_hw hw,
int  ee_reg 
)

e1000e_poll_eerd_eewr_done - Poll for EEPROM read/write completion : pointer to the HW structure : EEPROM flag for polling

Polls the EEPROM status bit for either read or write completion based upon the value of 'ee_reg'.

Definition at line 148 of file nvm.c.

void e1000e_power_up_phy ( struct e1000_adapter adapter)

e1000e_power_up_phy - restore link in case the phy was powered down : address of board private structure

The phy may be powered down to save power and turn off link when the driver is unloaded and wake on lan is not enabled (among others) *** this routine MUST be followed by a call to e1000e_reset ***

Definition at line 3366 of file netdev.c.

void e1000e_put_hw_semaphore ( struct e1000_hw hw)

e1000e_put_hw_semaphore - Release hardware semaphore : pointer to the HW structure

Release hardware semaphore used to access the PHY or NVM

Definition at line 1342 of file mac.c.

void e1000e_rar_set_generic ( struct e1000_hw hw,
u8 addr,
u32  index 
)

e1000e_rar_set_generic - Set receive address register : pointer to the HW structure : pointer to the receive address : receive address array register

Sets the receive address array register at index to the address passed in by addr.

Definition at line 232 of file mac.c.

s32 e1000e_read_kmrn_reg ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_kmrn_reg - Read kumeran register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore then reads the PHY register at offset using the kumeran interface. The information retrieved is stored in data. Release the acquired semaphore before exiting.

Definition at line 554 of file phy.c.

s32 e1000e_read_kmrn_reg_locked ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_kmrn_reg_locked - Read kumeran register : pointer to the HW structure : register offset to be read : pointer to the read data

Reads the PHY register at offset using the kumeran interface. The information retrieved is stored in data. Assumes semaphore already acquired.

Definition at line 569 of file phy.c.

s32 e1000e_read_nvm_eerd ( struct e1000_hw hw,
u16  offset,
u16  words,
u16 data 
)

e1000e_read_nvm_eerd - Reads EEPROM using EERD register : pointer to the HW structure : offset of word in the EEPROM to read : number of words to read : word read from the EEPROM

Reads a 16 bit word from the EEPROM using the EERD register.

Definition at line 318 of file nvm.c.

s32 e1000e_read_phy_reg_bm ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_bm - Read BM PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore, if necessary, then reads the PHY register at offset and storing the retrieved information in data. Release any acquired semaphores before exiting.

Definition at line 2519 of file phy.c.

s32 e1000e_read_phy_reg_bm2 ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_bm2 - Read BM PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore, if necessary, then reads the PHY register at offset and storing the retrieved information in data. Release any acquired semaphores before exiting.

Definition at line 2577 of file phy.c.

s32 e1000e_read_phy_reg_igp ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_igp - Read igp PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore then reads the PHY register at offset and stores the retrieved information in data. Release the acquired semaphore before exiting.

Definition at line 416 of file phy.c.

s32 e1000e_read_phy_reg_igp_locked ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_igp_locked - Read igp PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Reads the PHY register at offset and stores the retrieved information in data. Assumes semaphore already acquired.

Definition at line 430 of file phy.c.

s32 e1000e_read_phy_reg_m88 ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_m88 - Read m88 PHY register : pointer to the HW structure : register offset to be read : pointer to the read data

Acquires semaphore, if necessary, then reads the PHY register at offset and storing the retrieved information in data. Release any acquired semaphores before exiting.

Definition at line 308 of file phy.c.

s32 e1000e_read_phy_reg_mdic ( struct e1000_hw hw,
u32  offset,
u16 data 
)

e1000e_read_phy_reg_mdic - Read MDI control register : pointer to the HW structure : register offset to be read : pointer to the read data

Reads the MDI control register in the PHY at offset and stores the information read to data.

Definition at line 186 of file phy.c.

void e1000e_reinit_locked ( struct e1000_adapter adapter)

Definition at line 3700 of file netdev.c.

void e1000e_release_hw_control ( struct e1000_adapter adapter)

e1000e_release_hw_control - release control of the h/w to f/w : address of board private structure

e1000e_release_hw_control resets {CTRL_EXT|SWSM}:DRV_LOAD bit. For ASF and Pass Through versions of f/w this means that the driver is no longer loaded. For AMT version (only with 82573) i of the f/w this means that the network i/f is closed.

Definition at line 2161 of file netdev.c.

void e1000e_release_nvm ( struct e1000_hw hw)

e1000e_release_nvm - Release exclusive access to EEPROM : pointer to the HW structure

Stop any current commands to the EEPROM and clear the EEPROM request bit.

Definition at line 250 of file nvm.c.

void e1000e_reload_nvm_generic ( struct e1000_hw hw)

e1000e_reload_nvm_generic - Reloads EEPROM : pointer to the HW structure

Reloads the EEPROM by setting the "Reinitialize from EEPROM" bit in the extended control register.

Definition at line 634 of file nvm.c.

void e1000e_reset ( struct e1000_adapter adapter)

e1000e_reset - bring the hardware into a known good state

This function boots the hardware and enables some settings that require a configuration cycle of the hardware - those cannot be set/changed during runtime. After reset the device needs to be properly configured for Rx, Tx etc.

Definition at line 3398 of file netdev.c.

void e1000e_reset_adaptive ( struct e1000_hw hw)

e1000e_reset_adaptive - Reset Adaptive Interframe Spacing : pointer to the HW structure

Reset the Adaptive Interframe Spacing throttle to default values.

Definition at line 1654 of file mac.c.

void e1000e_reset_interrupt_capability ( struct e1000_adapter adapter)

Definition at line 1913 of file netdev.c.

s32 e1000e_set_d3_lplu_state ( struct e1000_hw hw,
bool  active 
)

e1000e_set_d3_lplu_state - Sets low power link up state for D3 : pointer to the HW structure : boolean used to enable/disable lplu

Success returns 0, Failure returns 1

The low power link up (lplu) state is set to the power management level D3 and SmartSpeed is disabled when active is true, else clear lplu for D3 and enable Smartspeed. LPLU and Smartspeed are mutually exclusive. LPLU is used during Dx states where the power conservation is most important. During driver activity, SmartSpeed should be enabled so performance is maintained.

Definition at line 1561 of file phy.c.

void e1000e_set_ethtool_ops ( struct net_device netdev)

Definition at line 2105 of file ethtool.c.

s32 e1000e_set_fc_watermarks ( struct e1000_hw hw)

e1000e_set_fc_watermarks - Set flow control high/low watermarks : pointer to the HW structure

Sets the flow control high/low threshold (watermark) registers. If flow control XON frame transmission is enabled, then set XON frame transmission as well.

Definition at line 953 of file mac.c.

void e1000e_set_interrupt_capability ( struct e1000_adapter adapter)

e1000e_set_interrupt_capability - set MSI or MSI-X if supported

Attempt to configure interrupts using the best available capabilities of the hardware and kernel.

Definition at line 1931 of file netdev.c.

void e1000e_set_kmrn_lock_loss_workaround_ich8lan ( struct e1000_hw hw,
bool  state 
)

e1000e_set_kmrn_lock_loss_workaround_ich8lan - Set Kumeran workaround state : pointer to the HW structure : boolean value used to set the current Kumeran workaround state

If ICH8, set the current Kumeran workaround state (enabled - true /disabled - false).

Definition at line 3946 of file ich8lan.c.

void e1000e_set_laa_state_82571 ( struct e1000_hw hw,
bool  state 
)

e1000e_set_laa_state_82571 - Set locally administered address state : pointer to the HW structure : enable/disable locally administered address

Enable/Disable the current locally administered address state.

Definition at line 1774 of file 82571.c.

void e1000e_set_pcie_no_snoop ( struct e1000_hw hw,
u32  no_snoop 
)

e1000e_set_pcie_no_snoop - Set PCI-express capabilities : pointer to the HW structure : bitmap of snoop events

Set the PCI-express register to snoop for events enabled in 'no_snoop'.

Definition at line 1601 of file mac.c.

s32 e1000e_setup_copper_link ( struct e1000_hw hw)

e1000e_setup_copper_link - Configure copper link settings : pointer to the HW structure

Calls the appropriate function to configure the link for auto-neg or forced speed and duplex. Then we check for link, once link is established calls to configure collision distance and flow control are called. If link is not established, we return -E1000_ERR_PHY (-2).

Definition at line 1205 of file phy.c.

s32 e1000e_setup_fiber_serdes_link ( struct e1000_hw hw)

e1000e_setup_fiber_serdes_link - Setup link for fiber/serdes : pointer to the HW structure

Configures collision distance and flow control for fiber and serdes links. Upon successful setup, poll for link.

Definition at line 881 of file mac.c.

s32 e1000e_setup_led_generic ( struct e1000_hw hw)

e1000e_setup_led_generic - Configures SW controllable LED : pointer to the HW structure

This prepares the SW controllable LED for use and saves the current state of the LED so it can be later restored.

Definition at line 1471 of file mac.c.

s32 e1000e_setup_link_generic ( struct e1000_hw hw)

e1000e_setup_link_generic - Setup flow control and link settings : pointer to the HW structure

Determines which flow control settings to use, then configures flow control. Calls the appropriate media-specific link configuration function. Assuming the adapter has a valid link partner, a valid link should be established. Assumes the hardware has previously been reset and the transmitter and receiver are not enabled.

Definition at line 704 of file mac.c.

int e1000e_setup_rx_resources ( struct e1000_ring rx_ring)

e1000e_setup_rx_resources - allocate Rx resources (Descriptors) : Rx descriptor ring

Returns 0 on success, negative on failure

Definition at line 2233 of file netdev.c.

int e1000e_setup_tx_resources ( struct e1000_ring tx_ring)

e1000e_setup_tx_resources - allocate Tx resources (Descriptors) : Tx descriptor ring

Return 0 on success, negative on failure

Definition at line 2199 of file netdev.c.

int e1000e_up ( struct e1000_adapter adapter)

Definition at line 3593 of file netdev.c.

void e1000e_update_adaptive ( struct e1000_hw hw)

e1000e_update_adaptive - Update Adaptive Interframe Spacing : pointer to the HW structure

Update the Adaptive Interframe Spacing Throttle value based on the time between transmitted packets and time between collisions.

Definition at line 1680 of file mac.c.

void e1000e_update_mc_addr_list_generic ( struct e1000_hw hw,
u8 mc_addr_list,
u32  mc_addr_count 
)

e1000e_update_mc_addr_list_generic - Update Multicast addresses : pointer to the HW structure : array of multicast addresses to program : number of multicast addresses to program

Updates entire Multicast Table Array. The caller must have a packed mc_addr_list of multicast addresses.

Definition at line 339 of file mac.c.

s32 e1000e_update_nvm_checksum_generic ( struct e1000_hw hw)

e1000e_update_nvm_checksum_generic - Update EEPROM checksum : pointer to the HW structure

Updates the EEPROM checksum by reading/adding each word of the EEPROM up to the checksum. Then calculates the EEPROM checksum and writes the value to the EEPROM.

Definition at line 605 of file nvm.c.

s32 e1000e_valid_led_default ( struct e1000_hw hw,
u16 data 
)

e1000e_valid_led_default - Verify a valid default LED config : pointer to the HW structure : pointer to the NVM (EEPROM)

Read the EEPROM for the current default LED configuration. If the LED configuration is not valid, set to a valid LED configuration.

Definition at line 1384 of file mac.c.

s32 e1000e_validate_nvm_checksum_generic ( struct e1000_hw hw)

e1000e_validate_nvm_checksum_generic - Validate EEPROM checksum : pointer to the HW structure

Calculates the EEPROM checksum by reading/adding each word of the EEPROM and then verifies that the sum of the EEPROM is equal to 0xBABA.

Definition at line 574 of file nvm.c.

void e1000e_write_itr ( struct e1000_adapter adapter,
u32  itr 
)

e1000e_write_itr - write the ITR value to the appropriate registers : address of board private structure : new ITR value to program

e1000e_write_itr determines if the adapter is in MSI-X mode and, if so, writes the EITR registers with the ITR value. Otherwise, it writes the ITR value into the ITR register.

Definition at line 2501 of file netdev.c.

s32 e1000e_write_kmrn_reg ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_kmrn_reg - Write kumeran register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore then writes the data to the PHY register at the offset using the kumeran interface. Release the acquired semaphore before exiting.

Definition at line 623 of file phy.c.

s32 e1000e_write_kmrn_reg_locked ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_kmrn_reg_locked - Write kumeran register : pointer to the HW structure : register offset to write to : data to write at register offset

Write the data to PHY register at the offset using the kumeran interface. Assumes semaphore already acquired.

Definition at line 637 of file phy.c.

s32 e1000e_write_nvm_spi ( struct e1000_hw hw,
u16  offset,
u16  words,
u16 data 
)

e1000e_write_nvm_spi - Write to EEPROM using SPI : pointer to the HW structure : offset within the EEPROM to be written to : number of words to write : 16 bit word(s) to be written to the EEPROM

Writes data to EEPROM at offset using SPI interface.

If e1000e_update_nvm_checksum is not called after this function , the EEPROM will most likely contain an invalid checksum.

Definition at line 361 of file nvm.c.

s32 e1000e_write_phy_reg_bm ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_bm - Write BM PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore, if necessary, then writes the data to PHY register at the offset. Release any acquired semaphores before exiting.

Definition at line 2460 of file phy.c.

s32 e1000e_write_phy_reg_bm2 ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_bm2 - Write BM PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore, if necessary, then writes the data to PHY register at the offset. Release any acquired semaphores before exiting.

Definition at line 2621 of file phy.c.

s32 e1000e_write_phy_reg_igp ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_igp - Write igp PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore then writes the data to PHY register at the offset. Release any acquired semaphores before exiting.

Definition at line 482 of file phy.c.

s32 e1000e_write_phy_reg_igp_locked ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_igp_locked - Write igp PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Writes the data to PHY register at the offset. Assumes semaphore already acquired.

Definition at line 496 of file phy.c.

s32 e1000e_write_phy_reg_m88 ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_m88 - Write m88 PHY register : pointer to the HW structure : register offset to write to : data to write at register offset

Acquires semaphore, if necessary, then writes the data to PHY register at the offset. Release any acquired semaphores before exiting.

Definition at line 333 of file phy.c.

s32 e1000e_write_phy_reg_mdic ( struct e1000_hw hw,
u32  offset,
u16  data 
)

e1000e_write_phy_reg_mdic - Write MDI control register : pointer to the HW structure : register offset to write to : data to write to register at offset

Writes data to MDI control register in the PHY at offset.

Definition at line 246 of file phy.c.

void e1000e_write_protect_nvm_ich8lan ( struct e1000_hw hw)

e1000e_write_protect_nvm_ich8lan - Make the NVM read-only : pointer to the HW structure

To prevent malicious write/erase of the NVM, set it to be read-only so that the hardware ignores all write/erase cycles of the NVM via the flash control registers. The shadow-ram copy of the NVM will still be updated, however any updates to this copy will not stick across driver reloads.

Definition at line 3033 of file ich8lan.c.

Variable Documentation

unsigned int copybreak

Definition at line 47 of file param.c.

struct e1000_info e1000_82571_info

Definition at line 2023 of file 82571.c.

struct e1000_info e1000_82572_info

Definition at line 2044 of file 82571.c.

struct e1000_info e1000_82573_info

Definition at line 2062 of file 82571.c.

struct e1000_info e1000_82574_info

Definition at line 2080 of file 82571.c.

struct e1000_info e1000_82583_info

Definition at line 2103 of file 82571.c.

struct e1000_info e1000_es2_info

Definition at line 1478 of file 80003es2lan.c.

struct e1000_info e1000_ich10_info

Definition at line 4564 of file ich8lan.c.

struct e1000_info e1000_ich8_info

Definition at line 4531 of file ich8lan.c.

struct e1000_info e1000_ich9_info

Definition at line 4547 of file ich8lan.c.

struct e1000_info e1000_pch2_info

Definition at line 4600 of file ich8lan.c.

struct e1000_info e1000_pch_info

Definition at line 4581 of file ich8lan.c.

struct e1000_info e1000_pch_lpt_info

Definition at line 4619 of file ich8lan.c.

char e1000e_driver_name[]

Definition at line 60 of file netdev.c.

const char e1000e_driver_version[]

Definition at line 61 of file netdev.c.