79 0, 60, 115, 150, 150, 60, 115, 150, 180, 180, 0xFF };
80#define GG82563_CABLE_LENGTH_TABLE_SIZE \
81 (sizeof(e1000_gg82563_cable_length_table) / \
82 sizeof(e1000_gg82563_cable_length_table[0]))
93 DEBUGFUNC(
"e1000_init_phy_params_80003es2lan");
145 DEBUGFUNC(
"e1000_init_nvm_params_80003es2lan");
199 DEBUGFUNC(
"e1000_init_mac_params_80003es2lan");
281 DEBUGFUNC(
"e1000_init_function_pointers_80003es2lan");
298 DEBUGFUNC(
"e1000_acquire_phy_80003es2lan");
314 DEBUGFUNC(
"e1000_release_phy_80003es2lan");
331 DEBUGFUNC(
"e1000_acquire_mac_csr_80003es2lan");
348 DEBUGFUNC(
"e1000_release_mac_csr_80003es2lan");
365 DEBUGFUNC(
"e1000_acquire_nvm_80003es2lan");
387 DEBUGFUNC(
"e1000_release_nvm_80003es2lan");
408 DEBUGFUNC(
"e1000_read_phy_reg_gg82563_80003es2lan");
479 DEBUGFUNC(
"e1000_write_phy_reg_gg82563_80003es2lan");
547 DEBUGFUNC(
"e1000_write_nvm_80003es2lan");
564 DEBUGFUNC(
"e1000_get_cfg_done_80003es2lan");
576 DEBUGOUT(
"MNG configuration cycle has not completed.\n");
596 DEBUGFUNC(
"e1000_phy_force_speed_duplex_80003es2lan");
608 phy_data &= ~GG82563_PSCR_CROSSOVER_MODE_AUTO;
613 DEBUGOUT1(
"GG82563 PSCR: %X\n", phy_data);
631 DEBUGOUT(
"Waiting for forced speed/duplex link on GG82563 phy.\n");
662 phy_data &= ~GG82563_MSCR_TX_CLK_MASK;
691 DEBUGFUNC(
"e1000_get_cable_length_80003es2lan");
726 DEBUGFUNC(
"e1000_get_link_up_info_80003es2lan");
760 DEBUGOUT(
"PCI-E Master disable polling has failed.\n");
762 DEBUGOUT(
"Masking off all interrupts\n");
777 DEBUGOUT(
"Issuing a global reset to MAC\n");
790 DEBUGOUT(
"Error disabling far-end loopback\n");
792 DEBUGOUT(
"Error disabling far-end loopback\n");
828 DEBUGOUT(
"Error initializing identification LED\n");
831 DEBUGOUT(
"Initializing the IEEE VLAN\n");
857 DEBUGOUT(
"Error disabling far-end loopback\n");
859 DEBUGOUT(
"Error disabling far-end loopback\n");
863 reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) |
869 reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) |
880 reg_data &= ~E1000_TCTL_EXT_GCEX_MASK;
886 reg_data &= ~E1000_TIPG_IPGT_MASK;
891 reg_data &= ~0x00100000;
926 DEBUGFUNC(
"e1000_initialize_hw_bits_80003es2lan");
976 DEBUGFUNC(
"e1000_copper_link_setup_gg82563_80003es2lan");
1001 data &= ~GG82563_PSCR_CROSSOVER_MODE_MASK;
1003 switch (phy->
mdix) {
1022 data &= ~GG82563_PSCR_POLARITY_REVERSAL_DISABLE;
1033 DEBUGOUT(
"Error Resetting the PHY\n");
1058 data &= ~GG82563_PSCR2_REVERSE_AUTO_NEG;
1064 reg &= ~E1000_CTRL_EXT_LINK_MODE_MASK;
1088 data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;
1123 DEBUGFUNC(
"e1000_setup_copper_link_80003es2lan");
1181 DEBUGFUNC(
"e1000_configure_on_link_up");
1211 u16 reg_data, reg_data2;
1213 DEBUGFUNC(
"e1000_configure_kmrn_for_10_100");
1225 tipg &= ~E1000_TIPG_IPGT_MASK;
1245 reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;
1260 u16 reg_data, reg_data2;
1264 DEBUGFUNC(
"e1000_configure_kmrn_for_1000");
1276 tipg &= ~E1000_TIPG_IPGT_MASK;
1293 reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;
1314 DEBUGFUNC(
"e1000_read_kmrn_reg_80003es2lan");
1328 *data = (
u16)kmrnctrlsta;
1351 DEBUGFUNC(
"e1000_write_kmrn_reg_80003es2lan");
1377 DEBUGFUNC(
"e1000_read_mac_addr_80003es2lan");
1415 DEBUGFUNC(
"e1000_clear_hw_cntrs_80003es2lan");
static const u16 e1000_gg82563_cable_length_table[]
static s32 e1000_get_cable_length_80003es2lan(struct e1000_hw *hw)
static s32 e1000_read_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, u16 *data)
static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw)
static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw)
static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, u32 offset, u16 *data)
static s32 e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, u32 offset, u16 data)
static s32 e1000_cfg_on_link_up_80003es2lan(struct e1000_hw *hw)
static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex)
static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw)
static s32 e1000_copper_link_setup_gg82563_80003es2lan(struct e1000_hw *hw)
static s32 e1000_acquire_nvm_80003es2lan(struct e1000_hw *hw)
static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw)
#define GG82563_CABLE_LENGTH_TABLE_SIZE
static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw)
static void e1000_release_phy_80003es2lan(struct e1000_hw *hw)
static s32 e1000_get_cfg_done_80003es2lan(struct e1000_hw *hw)
static s32 e1000_acquire_phy_80003es2lan(struct e1000_hw *hw)
static s32 e1000_write_nvm_80003es2lan(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
static s32 e1000_acquire_mac_csr_80003es2lan(struct e1000_hw *hw)
static s32 e1000_init_mac_params_80003es2lan(struct e1000_hw *hw)
static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw)
static void e1000_release_mac_csr_80003es2lan(struct e1000_hw *hw)
static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw)
static void e1000_release_nvm_80003es2lan(struct e1000_hw *hw)
static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw)
void e1000_init_function_pointers_80003es2lan(struct e1000_hw *hw)
static s32 e1000_phy_force_speed_duplex_80003es2lan(struct e1000_hw *hw)
static s32 e1000_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed, u16 *duplex)
static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw)
static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw)
static s32 e1000_write_kmrn_reg_80003es2lan(struct e1000_hw *hw, u32 offset, u16 data)
#define DEFAULT_TCTL_EXT_GCEX_80003ES2LAN
#define GG82563_KMCR_PASS_FALSE_CARRIER
#define GG82563_DSPD_CABLE_LENGTH
#define DEFAULT_TIPG_IPGT_1000_80003ES2LAN
#define E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT
#define GG82563_PSCR_CROSSOVER_MODE_MDI
#define GG82563_PSCR_CROSSOVER_MODE_AUTO
#define E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING
#define GG82563_MSCR_TX_CLK_10MBPS_2_5
#define GG82563_MAX_KMRN_RETRY
#define GG82563_PMCR_ENABLE_ELECTRICAL_IDLE
#define GG82563_MSCR_TX_CLK_1000MBPS_25
#define E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT
#define E1000_KMRNCTRLSTA_OPMODE_E_IDLE
#define E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS
#define E1000_KMRNCTRLSTA_OPMODE_MASK
#define E1000_KMRNCTRLSTA_OPMODE_INBAND_MDIO
#define E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS
#define E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE
#define GG82563_PSCR_CROSSOVER_MODE_MDIX
#define E1000_KMRNCTRLSTA_OFFSET_HD_CTRL
#define E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL
#define GG82563_ICR_DIS_PADDING
#define GG82563_MSCR_TX_CLK_100MBPS_25
#define GG82563_MSCR_ASSERT_CRS_ON_TX
#define DEFAULT_TIPG_IPGT_10_100_80003ES2LAN
#define GG82563_PSCR_POLARITY_REVERSAL_DISABLE
#define E1000_KMRNCTRLSTA_OFFSET_INB_CTRL
#define GG82563_PHY_SPEC_CTRL_2
#define GG82563_PHY_DSP_DISTANCE
#define GG82563_PHY_KMRN_MODE_CTRL
#define GG82563_PHY_INBAND_CTRL
#define M88E1000_PHY_SPEC_CTRL
#define E1000_CTRL_FRCSPD
#define NVM_WORD_SIZE_BASE_SHIFT
#define E1000_SWFW_PHY1_SM
#define MAX_PHY_REG_ADDRESS
#define GG82563_PHY_PAGE_SELECT_ALT
#define GG82563_PHY_MAC_SPEC_CTRL
#define E1000_ALL_10_SPEED
#define E1000_EECD_SIZE_EX_SHIFT
#define E1000_EECD_SIZE_EX_MASK
#define E1000_SWFW_PHY0_SM
#define E1000_TXDCTL_COUNT_DESC
#define GG82563_PAGE_SHIFT
#define AUTONEG_ADVERTISE_SPEED_DEFAULT
#define E1000_SWFW_CSR_SM
#define GG82563_MIN_ALT_REG
#define E1000_NVM_CFG_DONE_PORT_0
#define E1000_SWFW_EEP_SM
#define E1000_EECD_ADDR_BITS
#define E1000_NVM_CFG_DONE_PORT_1
#define GG82563_PHY_PWR_MGMT_CTRL
#define E1000_RAR_ENTRIES
#define GG82563_REG(page, reg)
#define E1000_CTRL_FRCDPX
#define GG82563_PHY_PAGE_SELECT
#define E1000_RFCTL_NEW_IPV6_EXT_DIS
#define E1000_TXDCTL_FULL_TX_DESC_WB
#define E1000_RFCTL_IPV6_EX_DIS
#define GG82563_PHY_SPEC_CTRL
@ e1000_nvm_override_spi_large
@ e1000_nvm_override_spi_small
#define E1000_DEV_ID_80003ES2LAN_SERDES_DPT
@ e1000_media_type_internal_serdes
@ e1000_media_type_copper
s32 e1000_get_bus_info_pcie_generic(struct e1000_hw *hw)
s32 e1000_valid_led_default_generic(struct e1000_hw *hw, u16 *data)
s32 e1000_check_for_copper_link_generic(struct e1000_hw *hw)
s32 e1000_id_led_init_generic(struct e1000_hw *hw)
s32 e1000_acquire_swfw_sync(struct e1000_hw *hw, u16 mask)
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)
void e1000_release_swfw_sync(struct e1000_hw *hw, u16 mask)
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)
void e1000_clear_vfta_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_check_for_serdes_link_generic(struct e1000_hw *hw)
s32 e1000_setup_led_generic(struct e1000_hw *hw)
s32 e1000_get_auto_rd_done_generic(struct e1000_hw *hw)
bool e1000_check_mng_mode_generic(struct e1000_hw *hw)
#define E1000_FWSM_MODE_MASK
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_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_READ_REG_ARRAY(hw, reg, index)
#define E1000_WRITE_FLUSH(a)
#define E1000_WRITE_REG(hw, reg, value)
#define E1000_READ_REG(hw, reg)
s32 e1000_check_reset_block_generic(struct e1000_hw *hw)
void e1000_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl)
s32 e1000_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, u32 usec_interval, bool *success)
s32 e1000_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data)
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)
void e1000_power_up_phy_copper(struct e1000_hw *hw)
s32 e1000_phy_sw_reset_generic(struct e1000_hw *hw)
s32 e1000_phy_reset_dsp_generic(struct e1000_hw *hw)
s32 e1000_check_polarity_m88(struct e1000_hw *hw)
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_setup_copper_link_generic(struct e1000_hw *hw)
#define E1000_KMRNCTRLSTA_REN
#define E1000_KMRNCTRLSTA_INBAND_PARAM
#define E1000_KMRNCTRLSTA_OFFSET_SHIFT
#define E1000_KMRNCTRLSTA_IBIST_DISABLE
#define E1000_KMRNCTRLSTA_OFFSET
#define E1000_KMRNCTRLSTA
union e1000_hw::@46 dev_spec
struct e1000_dev_spec_80003es2lan _80003es2lan
struct e1000_bus_info bus
struct e1000_mac_info mac
struct e1000_nvm_info nvm
struct e1000_phy_info phy
bool asf_firmware_present
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)
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 *)
bool autoneg_wait_to_complete
enum e1000_media_type media_type
bool disable_polarity_correction
struct e1000_phy_operations ops
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(* cfg_on_link_up)(struct e1000_hw *)
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 *)