130 DEBUGOUT(
"Resetting PHY during init failed.\n");
172 DEBUGFUNC(
"e1000_init_nvm_params_82543");
198 DEBUGFUNC(
"e1000_init_mac_params_82543");
272 DEBUGFUNC(
"e1000_init_function_pointers_82543");
291 DEBUGFUNC(
"e1000_tbi_compatibility_enabled_82543");
294 DEBUGOUT(
"TBI compatibility workaround for 82543 only.\n");
315 DEBUGFUNC(
"e1000_set_tbi_compatibility_82543");
318 DEBUGOUT(
"TBI compatibility workaround for 82543 only.\n");
343 DEBUGFUNC(
"e1000_tbi_sbp_enabled_82543");
346 DEBUGOUT(
"TBI compatibility workaround for 82543 only.\n");
389 DEBUGFUNC(
"e1000_init_phy_disabled_82543");
414 u8 *mac_addr,
u32 max_frame_size)
432 stats->
gorc += frame_len;
439 if ((mac_addr[0] == 0xff) && (mac_addr[1] == 0xff))
442 else if (*mac_addr & 0x01)
450 if ((frame_len == max_frame_size) && (stats->
roc > 0))
457 if (frame_len == 64) {
460 }
else if (frame_len == 127) {
463 }
else if (frame_len == 255) {
466 }
else if (frame_len == 511) {
469 }
else if (frame_len == 1023) {
472 }
else if (frame_len == 1522) {
496 DEBUGOUT1(
"PHY Address %d is out of range\n", offset);
520 mdic = (offset | (hw->
phy.
addr << 5) |
552 DEBUGOUT1(
"PHY Address %d is out of range\n", offset);
643 mask <<= (count - 1);
660 ctrl &= ~E1000_CTRL_MDIO;
704 ctrl &= ~E1000_CTRL_MDIO_DIR;
705 ctrl &= ~E1000_CTRL_MDIO;
718 for (data = 0, i = 0; i < 16; i++) {
746 DEBUGFUNC(
"e1000_phy_force_speed_duplex_82543");
875 ctrl_ext &= ~E1000_CTRL_EXT_SDP4_DATA;
909 DEBUGOUT(
"Masking off all interrupts\n");
926 DEBUGOUT(
"Issuing a global reset to 82543/82544 MAC\n");
1067 DEBUGFUNC(
"e1000_setup_copper_link_82543");
1105 DEBUGOUT(
"Forcing Speed and Duplex\n");
1108 DEBUGOUT(
"Error Forcing Speed and Duplex\n");
1124 DEBUGOUT(
"Valid link established!!!\n");
1135 DEBUGOUT(
"Unable to establish link!!!\n");
1154 DEBUGFUNC(
"e1000_setup_fiber_link_82543");
1159 ctrl &= ~E1000_CTRL_LRST;
1167 DEBUGOUT(
"Auto-negotiation enabled\n");
1206 DEBUGFUNC(
"e1000_check_for_copper_link_82543");
1263 DEBUGOUT(
"Error configuring MAC to PHY settings\n");
1276 DEBUGOUT(
"Error configuring flow control\n");
1289 DEBUGOUT(
"Error getting link speed and duplex\n");
1304 rctl &= ~E1000_RCTL_SBP;
1337 u32 rxcw, ctrl, status;
1340 DEBUGFUNC(
"e1000_check_for_fiber_link_82543");
1363 DEBUGOUT(
"NOT RXing /C/, disable AutoNeg and force link.\n");
1376 DEBUGOUT(
"Error configuring flow control\n");
1386 DEBUGOUT(
"RXing /C/, enable AutoNeg and stop forcing link.\n");
1410 DEBUGFUNC(
"e1000_config_mac_to_phy_82543");
1428 ctrl &= ~E1000_CTRL_FD;
1490 ctrl &= ~E1000_CTRL_SWDPIN0;
1520 ctrl &= ~E1000_CTRL_SWDPIN0;
1536 DEBUGFUNC(
"e1000_clear_hw_cntrs_82543");
1573 u16 offset, nvm_data, i;
1577 for (i = 0; i < ETHER_ADDR_LEN; i += 2) {
1579 ret_val = hw->
nvm.
ops.
read(hw, offset, 1, &nvm_data);
1592 for (i = 0; i < ETHER_ADDR_LEN; i++)
static s32 e1000_setup_copper_link_82543(struct e1000_hw *hw)
static s32 e1000_init_phy_params_82543(struct e1000_hw *hw)
static void e1000_clear_hw_cntrs_82543(struct e1000_hw *hw)
static bool e1000_init_phy_disabled_82543(struct e1000_hw *hw)
static void e1000_raise_mdi_clk_82543(struct e1000_hw *hw, u32 *ctrl)
static s32 e1000_led_off_82543(struct e1000_hw *hw)
void e1000_tbi_adjust_stats_82543(struct e1000_hw *hw, struct e1000_hw_stats *stats, u32 frame_len, u8 *mac_addr, u32 max_frame_size)
static void e1000_lower_mdi_clk_82543(struct e1000_hw *hw, u32 *ctrl)
static s32 e1000_reset_hw_82543(struct e1000_hw *hw)
void e1000_init_function_pointers_82543(struct e1000_hw *hw)
static s32 e1000_polarity_reversal_workaround_82543(struct e1000_hw *hw)
static s32 e1000_setup_link_82543(struct e1000_hw *hw)
static s32 e1000_phy_force_speed_duplex_82543(struct e1000_hw *hw)
static s32 e1000_led_on_82543(struct e1000_hw *hw)
static bool e1000_tbi_compatibility_enabled_82543(struct e1000_hw *hw)
bool e1000_tbi_sbp_enabled_82543(struct e1000_hw *hw)
void e1000_set_tbi_compatibility_82543(struct e1000_hw *hw, bool state)
static s32 e1000_init_nvm_params_82543(struct e1000_hw *hw)
static s32 e1000_check_for_fiber_link_82543(struct e1000_hw *hw)
static s32 e1000_write_phy_reg_82543(struct e1000_hw *hw, u32 offset, u16 data)
static s32 e1000_phy_hw_reset_82543(struct e1000_hw *hw)
static void e1000_shift_out_mdi_bits_82543(struct e1000_hw *hw, u32 data, u16 count)
static s32 e1000_setup_fiber_link_82543(struct e1000_hw *hw)
static s32 e1000_check_for_copper_link_82543(struct e1000_hw *hw)
static u16 e1000_shift_in_mdi_bits_82543(struct e1000_hw *hw)
static s32 e1000_config_mac_to_phy_82543(struct e1000_hw *hw)
static s32 e1000_read_phy_reg_82543(struct e1000_hw *hw, u32 offset, u16 *data)
static void e1000_set_tbi_sbp_82543(struct e1000_hw *hw, bool state)
static void e1000_write_vfta_82543(struct e1000_hw *hw, u32 offset, u32 value)
static s32 e1000_init_mac_params_82543(struct e1000_hw *hw)
static s32 e1000_read_mac_addr_82543(struct e1000_hw *hw)
static s32 e1000_init_hw_82543(struct e1000_hw *hw)
#define TBI_COMPAT_ENABLED
#define PHY_PREAMBLE_SIZE
#define M88E1000_PHY_GEN_CONTROL
#define M88E1000_E_PHY_ID
#define NVM_WORD0F_SWPDIO_EXT_MASK
#define M88E1000_PSSR_1000MBS
#define NVM_INIT_CONTROL2_REG
#define E1000_CTRL_MDC_DIR
#define NVM_SWDPIO_EXT_SHIFT
#define E1000_CTRL_FRCSPD
#define M88E1000_PHY_SPEC_STATUS
#define MAX_PHY_REG_ADDRESS
#define M88E1000_PSSR_SPEED
#define COPPER_LINK_UP_LIMIT
#define E1000_ALL_10_SPEED
#define MII_SR_LINK_STATUS
#define M88E1000_PSSR_100MBS
#define E1000_CTRL_EXT_SDP4_DIR
#define AUTONEG_ADVERTISE_SPEED_DEFAULT
#define E1000_CTRL_SWDPIN1
#define E1000_CTRL_SWDPIO0
#define E1000_CTRL_MDIO_DIR
#define E1000_CTRL_SPD_SEL
#define E1000_RAR_ENTRIES
#define E1000_CTRL_SWDPIN0
#define M88E1000_I_PHY_ID
#define E1000_CTRL_FRCDPX
#define E1000_CTRL_EXT_SDP4_DATA
#define M88E1000_PHY_PAGE_SELECT
#define E1000_CTRL_SPD_1000
#define E1000_CTRL_SPD_100
#define M88E1000_PSSR_DPLX
#define E1000_DEV_ID_82544EI_FIBER
#define E1000_DEV_ID_82543GC_FIBER
@ e1000_media_type_copper
@ e1000_nvm_eeprom_microwire
void e1000_pcix_mmrbc_workaround_generic(struct e1000_hw *hw)
s32 e1000_valid_led_default_generic(struct e1000_hw *hw, u16 *data)
void e1000_set_lan_id_multi_port_pci(struct e1000_hw *hw)
s32 e1000_get_bus_info_pci_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_update_mc_addr_list_generic(struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
void e1000_clear_vfta_generic(struct e1000_hw *hw)
s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw)
s32 e1000_commit_fc_settings_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_config_fc_after_link_up_generic(struct e1000_hw *hw)
s32 e1000_update_nvm_checksum_generic(struct e1000_hw *hw)
s32 e1000_read_nvm_microwire(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
s32 e1000_write_nvm_microwire(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
s32 e1000_validate_nvm_checksum_generic(struct e1000_hw *hw)
#define E1000_WRITE_REG_IO(hw, reg, value)
#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 msec_delay_irq(x)
#define E1000_READ_REG(hw, reg)
s32 e1000_get_cable_length_m88(struct e1000_hw *hw)
s32 e1000_phy_has_link_generic(struct e1000_hw *hw, u32 iterations, u32 usec_interval, bool *success)
s32 e1000_copper_link_autoneg(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)
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_copper_link_setup_m88(struct e1000_hw *hw)
s32 e1000_read_phy_reg_m88(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_check_downshift_generic(struct e1000_hw *hw)
union e1000_hw::@46 dev_spec
struct e1000_bus_info bus
struct e1000_mac_info mac
struct e1000_nvm_info nvm
struct e1000_dev_spec_82543 _82543
struct e1000_phy_info phy
struct e1000_mac_operations ops
u8 perm_addr[ETHER_ADDR_LEN]
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(* config_collision_dist)(struct e1000_hw *)
void(* clear_vfta)(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 *)
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 *)
s32(* get_bus_info)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
struct e1000_nvm_operations ops
s32(* init_params)(struct e1000_hw *)
s32(* write)(struct e1000_hw *, u16, u16, u16 *)
void(* reload)(struct e1000_hw *)
s32(* validate)(struct e1000_hw *)
s32(* update)(struct e1000_hw *)
s32(* read)(struct e1000_hw *, u16, u16, u16 *)
s32(* valid_led_default)(struct e1000_hw *, u16 *)
enum e1000_media_type media_type
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 *)
s32(* force_speed_duplex)(struct e1000_hw *)
s32(* get_cable_length)(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 *)