193 DEBUGOUT1(
"PHY ID unknown: type = 0x%08x\n", phy->
id);
208 DEBUGFUNC(
"e1000_init_nvm_params_82571");
231 if (((eecd >> 15) & 0x3) == 0x3) {
237 eecd &= ~E1000_EECD_AUPDEN;
288 bool force_clear_smbi =
false;
290 DEBUGFUNC(
"e1000_init_mac_params_82571");
410 force_clear_smbi =
true;
412 force_clear_smbi =
false;
416 force_clear_smbi =
true;
420 if (force_clear_smbi) {
428 DEBUGOUT(
"Please update your 82571 Bootagent\n");
447 DEBUGFUNC(
"e1000_init_function_pointers_82571");
488 phy->
id = (
u32)(phy_id << 16);
494 phy->
id |= (
u32)(phy_id);
518 DEBUGFUNC(
"e1000_get_hw_semaphore_82574");
537 DEBUGOUT(
"Driver can't access the PHY\n");
556 DEBUGFUNC(
"e1000_put_hw_semaphore_82574");
559 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP;
579 DEBUGFUNC(
"e1000_set_d0_lplu_state_82574");
584 data &= ~E1000_PHY_CTRL_D0A_LPLU;
605 DEBUGFUNC(
"e1000_set_d3_lplu_state_82574");
608 data &= ~E1000_PHY_CTRL_NOND0A_LPLU;
717 DEBUGFUNC(
"e1000_update_nvm_checksum_82571");
774 DEBUGFUNC(
"e1000_validate_nvm_checksum_82571");
810 DEBUGOUT(
"nvm parameter(s) out of bounds\n");
814 for (i = 0; i < words; i++) {
853 DEBUGOUT(
"MNG configuration cycle has not completed.\n");
877 DEBUGFUNC(
"e1000_set_d0_lplu_state_82571");
898 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
904 data &= ~IGP02E1000_PM_D0_LPLU;
932 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
952 u32 ctrl, ctrl_ext, eecd, tctl;
962 DEBUGOUT(
"PCI-E Master disable polling has failed.\n");
964 DEBUGOUT(
"Masking off all interrupts\n");
969 tctl &= ~E1000_TCTL_EN;
990 DEBUGOUT(
"Issuing a global reset to MAC\n");
1085 DEBUGOUT(
"Error initializing identification LED\n");
1088 DEBUGOUT(
"Initializing the IEEE VLAN\n");
1110 reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) |
1115 switch (mac->
type) {
1127 reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) |
1154 DEBUGFUNC(
"e1000_initialize_hw_bits_82571");
1168 reg &= ~(0xF << 27);
1172 reg |= (1 << 23) | (1 << 24) | (1 << 25) | (1 << 26);
1188 reg &= ~((1 << 29) | (1 << 30));
1189 reg |= (1 << 22) | (1 << 24) | (1 << 25) | (1 << 26);
1239 reg &= ~E1000_CTRL_EXT_DMA_DYN_CLK_EN;
1288 u32 vfta_offset = 0;
1289 u32 vfta_bit_in_reg = 0;
1320 vfta_value = (offset == vfta_offset) ? vfta_bit_in_reg : 0;
1338 DEBUGFUNC(
"e1000_check_mng_mode_82574");
1365 for (i = 0; i < 4; i++)
1383 u16 status_1kbt = 0;
1384 u16 receive_errors = 0;
1455 DEBUGFUNC(
"e1000_setup_copper_link_82571");
1490 DEBUGFUNC(
"e1000_setup_fiber_serdes_link_82571");
1540 DEBUGFUNC(
"e1000_check_for_serdes_link_82571");
1580 DEBUGOUT(
"FORCED_UP -> AN_PROG\n");
1617 DEBUGOUT(
"Error config flow control\n");
1623 DEBUGOUT(
"AN_PROG -> FORCED_UP\n");
1695 DEBUGFUNC(
"e1000_valid_led_default_82571");
1781 DEBUGFUNC(
"e1000_fix_nvm_checksum_82571");
1789 ret_val = nvm->
ops.
read(hw, 0x10, 1, &data);
1793 if (!(data & 0x10)) {
1801 ret_val = nvm->
ops.
read(hw, 0x23, 1, &data);
1805 if (!(data & 0x8000)) {
1807 ret_val = nvm->
ops.
write(hw, 0x23, 1, &data);
1873 DEBUGFUNC(
"e1000_clear_hw_cntrs_82571");
static s32 e1000_setup_link_82571(struct e1000_hw *hw)
static s32 e1000_update_nvm_checksum_82571(struct e1000_hw *hw)
static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)
static s32 e1000_validate_nvm_checksum_82571(struct e1000_hw *hw)
static s32 e1000_write_nvm_eewr_82571(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
static s32 e1000_setup_fiber_serdes_link_82571(struct e1000_hw *hw)
static void e1000_put_hw_semaphore_82574(struct e1000_hw *hw)
bool e1000_get_laa_state_82571(struct e1000_hw *hw)
static s32 e1000_get_hw_semaphore_82574(struct e1000_hw *hw)
static void e1000_clear_hw_cntrs_82571(struct e1000_hw *hw)
static s32 e1000_init_phy_params_82571(struct e1000_hw *hw)
static void e1000_release_nvm_82571(struct e1000_hw *hw)
void e1000_init_function_pointers_82571(struct e1000_hw *hw)
static s32 e1000_led_on_82574(struct e1000_hw *hw)
static void e1000_clear_vfta_82571(struct e1000_hw *hw)
static s32 e1000_get_cfg_done_82571(struct e1000_hw *hw)
void e1000_set_laa_state_82571(struct e1000_hw *hw, bool state)
static void e1000_power_down_phy_copper_82571(struct e1000_hw *hw)
static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw)
static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw)
static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw)
static s32 e1000_set_d3_lplu_state_82574(struct e1000_hw *hw, bool active)
static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
static s32 e1000_get_phy_id_82571(struct e1000_hw *hw)
static s32 e1000_set_d0_lplu_state_82574(struct e1000_hw *hw, bool active)
static s32 e1000_acquire_nvm_82571(struct e1000_hw *hw)
static s32 e1000_valid_led_default_82571(struct e1000_hw *hw, u16 *data)
static bool e1000_check_mng_mode_82574(struct e1000_hw *hw)
static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, bool active)
static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw)
static s32 e1000_init_mac_params_82571(struct e1000_hw *hw)
static s32 e1000_init_hw_82571(struct e1000_hw *hw)
static s32 e1000_reset_hw_82571(struct e1000_hw *hw)
static s32 e1000_write_nvm_82571(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
bool e1000_check_phy_82574(struct e1000_hw *hw)
#define ID_LED_DEFAULT_82573
#define E1000_BASE1000T_STATUS
#define E1000_RECEIVE_ERROR_MAX
#define E1000_NVM_INIT_CTRL2_MNGM
#define E1000_IDLE_ERROR_COUNT_MASK
#define E1000_RECEIVE_ERROR_COUNTER
#define ID_LED_RESERVED_F746
#define E1000_GCR_L1_ACT_WITHOUT_L0S_RX
#define ID_LED_RESERVED_0000
#define PHY_REVISION_MASK
#define BME1000_E_PHY_ID_R2
#define NVM_INIT_CONTROL2_REG
#define M88E1111_I_PHY_ID
#define E1000_CTRL_FRCSPD
#define NVM_WORD_SIZE_BASE_SHIFT
#define E1000_NVM_POLL_WRITE
#define E1000_ALL_SPEED_DUPLEX
#define E1000_ALL_10_SPEED
#define E1000_EECD_SIZE_EX_SHIFT
#define E1000_EECD_SIZE_EX_MASK
#define E1000_VLAN_FILTER_TBL_SIZE
#define E1000_NVM_RW_REG_DATA
#define E1000_NVM_RW_ADDR_SHIFT
#define E1000_TXDCTL_COUNT_DESC
#define ID_LED_RESERVED_FFFF
#define E1000_PHY_CTRL_D0A_LPLU
#define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP
#define AUTONEG_ADVERTISE_SPEED_DEFAULT
#define E1000_LEDCTL_LED0_IVRT
#define E1000_NVM_CFG_DONE_PORT_0
#define E1000_NVM_RW_REG_START
#define E1000_ALL_NOT_GIG
#define E1000_EECD_ADDR_BITS
#define E1000_PBA_ECC_CORR_EN
#define E1000_RAR_ENTRIES
#define E1000_PHY_CTRL_NOND0A_LPLU
#define E1000_CTRL_FRCDPX
#define E1000_SCTL_DISABLE_SERDES_LOOPBACK
#define E1000_FLASH_UPDATES
#define E1000_RFCTL_NEW_IPV6_EXT_DIS
#define IGP01E1000_I_PHY_ID
#define E1000_CTRL_EXT_EE_RST
#define E1000_LEDCTL_MODE_LED_ON
#define E1000_TXDCTL_FULL_TX_DESC_WB
#define NVM_ID_LED_SETTINGS
#define MDIO_OWNERSHIP_TIMEOUT
#define E1000_RFCTL_IPV6_EX_DIS
#define E1000_DEV_ID_82571EB_SERDES_DUAL
@ e1000_nvm_override_spi_large
@ e1000_nvm_override_spi_small
#define E1000_DEV_ID_82572EI_FIBER
#define E1000_DEV_ID_82571EB_QUAD_FIBER
#define E1000_DEV_ID_82571EB_SERDES_QUAD
@ e1000_media_type_internal_serdes
@ e1000_media_type_copper
#define E1000_DEV_ID_82571EB_SERDES
@ e1000_serdes_link_forced_up
@ e1000_serdes_link_autoneg_progress
@ e1000_serdes_link_autoneg_complete
#define E1000_DEV_ID_82571EB_FIBER
#define E1000_DEV_ID_82572EI_SERDES
s32 e1000_get_bus_info_pcie_generic(struct e1000_hw *hw)
s32 e1000_get_hw_semaphore(struct e1000_hw *hw)
s32 e1000_check_for_copper_link_generic(struct e1000_hw *hw)
s32 e1000_id_led_init_generic(struct e1000_hw *hw)
void e1000_put_hw_semaphore(struct e1000_hw *hw)
s32 e1000_led_on_generic(struct e1000_hw *hw)
s32 e1000_disable_pcie_master_generic(struct e1000_hw *hw)
s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
s32 e1000_setup_link_generic(struct e1000_hw *hw)
void e1000_clear_hw_cntrs_base_generic(struct e1000_hw *hw)
s32 e1000_cleanup_led_generic(struct e1000_hw *hw)
s32 e1000_led_off_generic(struct e1000_hw *hw)
void e1000_update_mc_addr_list_generic(struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
s32 e1000_blink_led_generic(struct e1000_hw *hw)
s32 e1000_setup_fiber_serdes_link_generic(struct e1000_hw *hw)
s32 e1000_check_for_fiber_link_generic(struct e1000_hw *hw)
s32 e1000_get_speed_and_duplex_copper_generic(struct e1000_hw *hw, u16 *speed, u16 *duplex)
void e1000_init_rx_addrs_generic(struct e1000_hw *hw, u16 rar_count)
void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value)
s32 e1000_get_speed_and_duplex_fiber_serdes_generic(struct e1000_hw E1000_UNUSEDARG *hw, u16 *speed, u16 *duplex)
s32 e1000_setup_led_generic(struct e1000_hw *hw)
s32 e1000_config_fc_after_link_up_generic(struct e1000_hw *hw)
void e1000_set_lan_id_single_port(struct e1000_hw *hw)
s32 e1000_get_auto_rd_done_generic(struct e1000_hw *hw)
bool e1000_enable_tx_pkt_filtering_generic(struct e1000_hw *hw)
bool e1000_check_mng_mode_generic(struct e1000_hw *hw)
#define E1000_HICR_FW_RESET_ENABLE
#define E1000_FWSM_MODE_MASK
#define E1000_VFTA_ENTRY_MASK
#define E1000_VFTA_ENTRY_BIT_SHIFT_MASK
#define E1000_HICR_FW_RESET
#define E1000_VFTA_ENTRY_SHIFT
s32 e1000_update_nvm_checksum_generic(struct e1000_hw *hw)
s32 e1000_read_mac_addr_generic(struct e1000_hw *hw)
s32 e1000_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
s32 e1000_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
void e1000_release_nvm_generic(struct e1000_hw *hw)
s32 e1000_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg)
s32 e1000_acquire_nvm_generic(struct e1000_hw *hw)
s32 e1000_validate_nvm_checksum_generic(struct e1000_hw *hw)
#define E1000_WRITE_REG_ARRAY(hw, reg, index, value)
#define E1000_WRITE_FLUSH(a)
#define E1000_WRITE_REG(hw, reg, value)
#define E1000_READ_REG(hw, reg)
#define ASSERT_CTX_LOCK_HELD(hw)
s32 e1000_phy_force_speed_duplex_igp(struct e1000_hw *hw)
s32 e1000_check_reset_block_generic(struct e1000_hw *hw)
s32 e1000_get_cable_length_m88(struct e1000_hw *hw)
s32 e1000_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_get_cable_length_igp_2(struct e1000_hw *hw)
s32 e1000_get_phy_id(struct e1000_hw *hw)
void e1000_power_down_phy_copper(struct e1000_hw *hw)
s32 e1000_get_phy_info_m88(struct e1000_hw *hw)
s32 e1000_get_phy_info_igp(struct e1000_hw *hw)
s32 e1000_check_polarity_igp(struct e1000_hw *hw)
void e1000_power_up_phy_copper(struct e1000_hw *hw)
s32 e1000_phy_sw_reset_generic(struct e1000_hw *hw)
s32 e1000_get_cfg_done_generic(struct e1000_hw E1000_UNUSEDARG *hw)
s32 e1000_phy_force_speed_duplex_m88(struct e1000_hw *hw)
s32 e1000_check_polarity_m88(struct e1000_hw *hw)
s32 e1000_write_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_phy_hw_reset_generic(struct e1000_hw *hw)
s32 e1000_set_d3_lplu_state_generic(struct e1000_hw *hw, bool active)
s32 e1000_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_copper_link_setup_m88(struct e1000_hw *hw)
s32 e1000_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_copper_link_setup_igp(struct e1000_hw *hw)
s32 e1000_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_setup_copper_link_generic(struct e1000_hw *hw)
#define IGP01E1000_PHY_PORT_CONFIG
#define IGP02E1000_PM_D0_LPLU
#define IGP02E1000_PHY_POWER_MGMT
#define IGP01E1000_PSCFR_SMART_SPEED
#define E1000_EXTCNF_CTRL
enum e1000_fc_mode requested_mode
union e1000_hw::@46 dev_spec
struct e1000_mac_info mac
struct e1000_dev_spec_82571 _82571
struct e1000_nvm_info nvm
struct e1000_host_mng_dhcp_cookie mng_cookie
struct e1000_phy_info phy
bool asf_firmware_present
enum e1000_serdes_link_state serdes_link_state
struct e1000_mac_operations ops
s32(* setup_led)(struct e1000_hw *)
s32(* id_led_init)(struct e1000_hw *)
s32(* get_link_up_info)(struct e1000_hw *, u16 *, u16 *)
s32(* setup_physical_interface)(struct e1000_hw *)
s32(* check_for_link)(struct e1000_hw *)
void(* clear_vfta)(struct e1000_hw *)
s32(* blink_led)(struct e1000_hw *)
s32(* reset_hw)(struct e1000_hw *)
s32(* led_on)(struct e1000_hw *)
s32(* read_mac_addr)(struct e1000_hw *)
void(* write_vfta)(struct e1000_hw *, u32, u32)
int(* rar_set)(struct e1000_hw *, u8 *, u32)
s32(* init_hw)(struct e1000_hw *)
s32(* setup_link)(struct e1000_hw *)
s32(* cleanup_led)(struct e1000_hw *)
void(* clear_hw_cntrs)(struct e1000_hw *)
void(* set_lan_id)(struct e1000_hw *)
void(* update_mc_addr_list)(struct e1000_hw *, u8 *, u32)
s32(* led_off)(struct e1000_hw *)
bool(* check_mng_mode)(struct e1000_hw *)
s32(* get_bus_info)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
struct e1000_nvm_operations ops
enum e1000_nvm_override override
void(* release)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
s32(* write)(struct e1000_hw *, u16, u16, u16 *)
s32(* validate)(struct e1000_hw *)
s32(* update)(struct e1000_hw *)
s32(* read)(struct e1000_hw *, u16, u16, u16 *)
s32(* acquire)(struct e1000_hw *)
s32(* valid_led_default)(struct e1000_hw *, u16 *)
enum e1000_media_type media_type
struct e1000_phy_operations ops
enum e1000_smart_speed smart_speed
s32(* get_cfg_done)(struct e1000_hw *hw)
void(* power_up)(struct e1000_hw *)
s32(* reset)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
s32(* read_reg)(struct e1000_hw *, u32, u16 *)
s32(* get_info)(struct e1000_hw *)
void(* release)(struct e1000_hw *)
s32(* set_d3_lplu_state)(struct e1000_hw *, bool)
s32(* force_speed_duplex)(struct e1000_hw *)
s32(* get_cable_length)(struct e1000_hw *)
s32(* check_reset_block)(struct e1000_hw *)
s32(* acquire)(struct e1000_hw *)
s32(* set_d0_lplu_state)(struct e1000_hw *, bool)
s32(* write_reg)(struct e1000_hw *, u32, u16)
s32(* commit)(struct e1000_hw *)
void(* power_down)(struct e1000_hw *)
s32(* check_polarity)(struct e1000_hw *)