iPXE
|
#include <mii.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <byteswap.h>
#include <ipxe/pci.h>
#include "tg3.h"
Go to the source code of this file.
Data Structures | |
struct | subsys_tbl_ent |
struct | tg3_fiber_aneginfo |
Functions | |
static void | tg3_link_report (struct tg3 *tp) |
void | tg3_mdio_init (struct tg3 *tp) |
static int | tg3_issue_otp_command (struct tg3 *tp, u32 cmd) |
u32 | tg3_read_otp_phycfg (struct tg3 *tp) |
int tg3_rx_prodring_init(struct tg3 *tp, struct tg3_rx_prodring_set *tpr); More... | |
int | tg3_readphy (struct tg3 *tp, int reg, u32 *val) |
static struct subsys_tbl_ent * | tg3_lookup_by_subsys (struct tg3 *tp) |
int | tg3_writephy (struct tg3 *tp, int reg, u32 val) |
static int | tg3_bmcr_reset (struct tg3 *tp) |
static int | tg3_wait_macro_done (struct tg3 *tp) |
static int | tg3_phy_write_and_check_testpat (struct tg3 *tp, int *resetp) |
static int | tg3_phy_reset_chanpat (struct tg3 *tp) |
static int | tg3_phydsp_write (struct tg3 *tp, u32 reg, u32 val) |
static int | tg3_phy_auxctl_write (struct tg3 *tp, int reg, u32 set) |
static int | tg3_phy_reset_5703_4_5 (struct tg3 *tp) |
static void | tg3_phy_apply_otp (struct tg3 *tp) |
static int | tg3_phy_auxctl_read (struct tg3 *tp, int reg, u32 *val) |
static void | tg3_phy_toggle_automdix (struct tg3 *tp, int enable) |
static void | tg3_phy_set_wirespeed (struct tg3 *tp) |
int | tg3_phy_reset (struct tg3 *tp) |
static int | tg3_copper_is_advertising_all (struct tg3 *tp, u32 mask) |
static u16 | tg3_advert_flowctrl_1000T (u8 flow_ctrl) |
static int | tg3_phy_autoneg_cfg (struct tg3 *tp, u32 advertise, u32 flowctrl) |
static int | tg3_init_5401phy_dsp (struct tg3 *tp) |
static void | tg3_phy_init_link_config (struct tg3 *tp) |
int | tg3_phy_probe (struct tg3 *tp) |
void | tg3_poll_link (struct tg3 *tp) |
static void | tg3_aux_stat_to_speed_duplex (struct tg3 *tp, u32 val, u16 *speed, u8 *duplex) |
static int | tg3_adv_1000T_flowctrl_ok (struct tg3 *tp, u32 *lcladv, u32 *rmtadv) |
static u8 | tg3_resolve_flowctrl_1000X (u16 lcladv, u16 rmtadv) |
static void | tg3_setup_flow_control (struct tg3 *tp, u32 lcladv, u32 rmtadv) |
static void | tg3_phy_copper_begin (struct tg3 *tp) |
static int | tg3_5700_link_polarity (struct tg3 *tp, u32 speed) |
static void | tg3_ump_link_report (struct tg3 *tp) |
static u16 | tg3_advert_flowctrl_1000X (u8 flow_ctrl) |
static void | tg3_init_bcm8002 (struct tg3 *tp) |
static int | tg3_setup_fiber_hw_autoneg (struct tg3 *tp, u32 mac_status) |
static int | tg3_fiber_aneg_smachine (struct tg3 *tp, struct tg3_fiber_aneginfo *ap) |
static int | fiber_autoneg (struct tg3 *tp, u32 *txflags, u32 *rxflags) |
static int | tg3_setup_fiber_by_hand (struct tg3 *tp, u32 mac_status) |
static int | tg3_test_and_report_link_chg (struct tg3 *tp, int curr_link_up) |
static void | tg3_clear_mac_status (struct tg3 *tp) |
static int | tg3_setup_fiber_phy (struct tg3 *tp, int force_reset) |
static int | tg3_setup_fiber_mii_phy (struct tg3 *tp, int force_reset) |
static int | tg3_setup_copper_phy (struct tg3 *tp, int force_reset) |
int | tg3_setup_phy (struct tg3 *tp, int force_reset) |
Variables | |
static struct subsys_tbl_ent | subsys_id_to_phy_id [] |
#define TG3_PHY_AUXCTL_SMDSP_ENABLE | ( | tp | ) |
#define TG3_PHY_AUXCTL_SMDSP_DISABLE | ( | tp | ) |
|
static |
Definition at line 1260 of file tg3_phy.c.
References DBGC, DBGP, DUPLEX_FULL, FLOW_CTRL_RX, FLOW_CTRL_TX, netdev_link_ok(), SPEED_100, SPEED_1000, TG3_PHYFLG_EEE_CAP, tg3_ump_link_report(), and tp.
Referenced by tg3_phy_reset(), tg3_setup_copper_phy(), tg3_setup_fiber_phy(), and tg3_test_and_report_link_chg().
void tg3_mdio_init | ( | struct tg3 * | tp | ) |
Definition at line 13 of file tg3_phy.c.
References CHIPREV_ID_5717_A0, DBGP, PCI_FUNC, SG_DIG_IS_SERDES, SG_DIG_STATUS, TG3_CPMU_PHY_STRAP, TG3_CPMU_PHY_STRAP_IS_SERDES, tg3_flag, TG3_PHY_MII_ADDR, tp, and tr32.
Referenced by tg3_get_invariants().
Definition at line 32 of file tg3_phy.c.
References cmd, DBGP, EBUSY, OTP_CTRL, OTP_CTRL_OTP_CMD_START, OTP_STATUS, OTP_STATUS_CMD_DONE, tr32, tw32, udelay(), and val.
Referenced by tg3_read_otp_phycfg().
int tg3_rx_prodring_init(struct tg3 *tp, struct tg3_rx_prodring_set *tpr);
Definition at line 56 of file tg3_phy.c.
References DBGP, OTP_ADDRESS, OTP_ADDRESS_MAGIC1, OTP_ADDRESS_MAGIC2, OTP_CTRL_OTP_CMD_INIT, OTP_CTRL_OTP_CMD_READ, OTP_MODE, OTP_MODE_OTP_THRU_GRC, OTP_READ_DATA, tg3_issue_otp_command(), tp, tr32, and tw32.
Referenced by tg3_get_invariants().
Definition at line 85 of file tg3_phy.c.
References DBGP, EBUSY, MAC_MI_COM, MAC_MI_MODE, MAC_MI_MODE_AUTO_POLL, MI_COM_BUSY, MI_COM_CMD_READ, MI_COM_DATA_MASK, MI_COM_PHY_ADDR_MASK, MI_COM_PHY_ADDR_SHIFT, MI_COM_REG_ADDR_MASK, MI_COM_REG_ADDR_SHIFT, MI_COM_START, PHY_BUSY_LOOPS, reg, tp, tr32, tw32_f, udelay(), and val.
Referenced by tg3_adv_1000T_flowctrl_ok(), tg3_bmcr_reset(), tg3_copper_is_advertising_all(), tg3_phy_auxctl_read(), tg3_phy_probe(), tg3_phy_reset(), tg3_phy_reset_5703_4_5(), tg3_phy_toggle_automdix(), tg3_phy_write_and_check_testpat(), tg3_reset_hw(), tg3_setup_copper_phy(), tg3_setup_fiber_mii_phy(), tg3_ump_link_report(), and tg3_wait_macro_done().
|
static |
Definition at line 204 of file tg3_phy.c.
References ARRAY_SIZE, DBGC, DBGP, NULL, subsys_tbl_ent::subsys_devid, subsys_id_to_phy_id, subsys_tbl_ent::subsys_vendor, and tp.
Referenced by tg3_phy_probe().
Definition at line 221 of file tg3_phy.c.
References DBGP, EBUSY, MAC_MI_COM, MAC_MI_MODE, MAC_MI_MODE_AUTO_POLL, MI_COM_BUSY, MI_COM_CMD_WRITE, MI_COM_DATA_MASK, MI_COM_PHY_ADDR_MASK, MI_COM_PHY_ADDR_SHIFT, MI_COM_REG_ADDR_MASK, MI_COM_REG_ADDR_SHIFT, MI_COM_START, MII_TG3_AUX_CTRL, MII_TG3_CTRL, PHY_BUSY_LOOPS, reg, TG3_PHYFLG_IS_FET, tp, tr32, tw32_f, udelay(), and val.
Referenced by tg3_adv_1000T_flowctrl_ok(), tg3_bmcr_reset(), tg3_init_bcm8002(), tg3_phy_autoneg_cfg(), tg3_phy_auxctl_read(), tg3_phy_auxctl_write(), tg3_phy_copper_begin(), tg3_phy_probe(), tg3_phy_reset(), tg3_phy_reset_5703_4_5(), tg3_phy_reset_chanpat(), tg3_phy_toggle_automdix(), tg3_phy_write_and_check_testpat(), tg3_phydsp_write(), tg3_reset_hw(), tg3_setup_copper_phy(), and tg3_setup_fiber_mii_phy().
|
static |
Definition at line 271 of file tg3_phy.c.
References BMCR_RESET, DBGP, EBUSY, limit, MII_BMCR, tg3_readphy(), tg3_writephy(), tp, and udelay().
Referenced by tg3_phy_reset(), and tg3_phy_reset_5703_4_5().
|
static |
Definition at line 303 of file tg3_phy.c.
References DBGP, EBUSY, limit, MII_TG3_DSP_CONTROL, tg3_readphy(), and tp.
Referenced by tg3_phy_reset_chanpat(), and tg3_phy_write_and_check_testpat().
|
static |
Definition at line 322 of file tg3_phy.c.
References DBGP, EBUSY, high, low, MII_TG3_DSP_ADDRESS, MII_TG3_DSP_CONTROL, MII_TG3_DSP_RW_PORT, tg3_readphy(), tg3_wait_macro_done(), tg3_writephy(), and tp.
Referenced by tg3_phy_reset_5703_4_5().
|
static |
Definition at line 389 of file tg3_phy.c.
References DBGP, EBUSY, MII_TG3_DSP_ADDRESS, MII_TG3_DSP_CONTROL, MII_TG3_DSP_RW_PORT, tg3_wait_macro_done(), tg3_writephy(), and tp.
Referenced by tg3_phy_reset_5703_4_5().
Definition at line 410 of file tg3_phy.c.
References DBGP, MII_TG3_DSP_ADDRESS, MII_TG3_DSP_RW_PORT, reg, tg3_writephy(), tp, and val.
Referenced by tg3_init_5401phy_dsp(), tg3_phy_apply_otp(), tg3_phy_reset(), and tg3_phy_reset_5703_4_5().
Definition at line 422 of file tg3_phy.c.
References DBGP, MII_TG3_AUX_CTRL, MII_TG3_AUXCTL_MISC_WREN, MII_TG3_AUXCTL_SHDWSEL_MISC, reg, set, tg3_writephy(), and tp.
Referenced by tg3_init_5401phy_dsp(), tg3_phy_reset(), tg3_phy_set_wirespeed(), tg3_phy_toggle_automdix(), and tg3_setup_copper_phy().
|
static |
Definition at line 440 of file tg3_phy.c.
References BMCR_FULLDPLX, DBGP, EBUSY, MII_BMCR, MII_TG3_CTRL, MII_TG3_CTRL_AS_MASTER, MII_TG3_CTRL_ENABLE_AS_MASTER, MII_TG3_DSP_ADDRESS, MII_TG3_DSP_CONTROL, MII_TG3_EXT_CTRL, tg3_bmcr_reset(), TG3_BMCR_SPEED1000, TG3_PHY_AUXCTL_SMDSP_DISABLE, TG3_PHY_AUXCTL_SMDSP_ENABLE, tg3_phy_reset_chanpat(), tg3_phy_write_and_check_testpat(), tg3_phydsp_write(), tg3_readphy(), tg3_writephy(), and tp.
Referenced by tg3_phy_reset().
|
static |
Definition at line 509 of file tg3_phy.c.
References DBGP, MII_TG3_DSP_AADJ1CH0, MII_TG3_DSP_AADJ1CH3, MII_TG3_DSP_AADJ1CH3_ADCCKADJ, MII_TG3_DSP_EXP75, MII_TG3_DSP_EXP96, MII_TG3_DSP_EXP97, MII_TG3_DSP_TAP1, MII_TG3_DSP_TAP1_AGCTGT_DFLT, TG3_OTP_10BTAMP_MASK, TG3_OTP_10BTAMP_SHIFT, TG3_OTP_AGCTGT_MASK, TG3_OTP_AGCTGT_SHIFT, TG3_OTP_HPFFLTR_MASK, TG3_OTP_HPFFLTR_SHIFT, TG3_OTP_HPFOVER_MASK, TG3_OTP_HPFOVER_SHIFT, TG3_OTP_LPFDIS_MASK, TG3_OTP_LPFDIS_SHIFT, TG3_OTP_RCOFF_MASK, TG3_OTP_RCOFF_SHIFT, TG3_OTP_ROFF_MASK, TG3_OTP_ROFF_SHIFT, TG3_OTP_VDAC_MASK, TG3_OTP_VDAC_SHIFT, TG3_PHY_AUXCTL_SMDSP_DISABLE, TG3_PHY_AUXCTL_SMDSP_ENABLE, tg3_phydsp_write(), and tp.
Referenced by tg3_phy_reset().
Definition at line 547 of file tg3_phy.c.
References DBGP, MII_TG3_AUX_CTRL, MII_TG3_AUXCTL_MISC_RDSEL_SHIFT, MII_TG3_AUXCTL_SHDWSEL_MISC, reg, tg3_readphy(), tg3_writephy(), tp, and val.
Referenced by tg3_phy_set_wirespeed(), tg3_phy_toggle_automdix(), and tg3_setup_copper_phy().
|
static |
Definition at line 561 of file tg3_phy.c.
References DBGP, MII_TG3_AUXCTL_MISC_FORCE_AMDIX, MII_TG3_AUXCTL_SHDWSEL_MISC, MII_TG3_FET_SHADOW_EN, MII_TG3_FET_SHDW_MISCCTRL, MII_TG3_FET_SHDW_MISCCTRL_MDIX, MII_TG3_FET_TEST, reg, tg3_flag, tg3_phy_auxctl_read(), tg3_phy_auxctl_write(), TG3_PHYFLG_ANY_SERDES, TG3_PHYFLG_IS_FET, tg3_readphy(), tg3_writephy(), and tp.
Referenced by tg3_phy_reset().
|
static |
Definition at line 603 of file tg3_phy.c.
References DBGP, MII_TG3_AUXCTL_MISC_WIRESPD_EN, MII_TG3_AUXCTL_SHDWSEL_MISC, tg3_phy_auxctl_read(), tg3_phy_auxctl_write(), TG3_PHYFLG_NO_ETH_WIRE_SPEED, tp, and val.
Referenced by tg3_phy_probe(), and tg3_phy_reset().
int tg3_phy_reset | ( | struct tg3 * | tp | ) |
Definition at line 621 of file tg3_phy.c.
References ASIC_REV_5703, ASIC_REV_5704, ASIC_REV_5705, ASIC_REV_5784, ASIC_REV_5906, CHIPREV_5761_AX, CHIPREV_5784_AX, CPMU_CTRL_GPHY_10MB_RXONLY, CPMU_LSPD_1000MB_MACCLK_12_5, CPMU_LSPD_1000MB_MACCLK_MASK, DBGCP, DBGP, EBUSY, GET_ASIC_REV, GET_CHIP_REV, GRC_MISC_CFG, GRC_MISC_CFG_EPHY_IDDQ, MII_BMSR, MII_TG3_AUXCTL_SHDWSEL_AUXCTL, MII_TG3_DSP_ADDRESS, MII_TG3_DSP_EXP8, MII_TG3_DSP_EXP8_AEDW, MII_TG3_DSP_EXP8_REJ2MHz, MII_TG3_DSP_RW_PORT, MII_TG3_FET_PTEST, MII_TG3_MISC_SHDW, MII_TG3_TEST1, MII_TG3_TEST1_TRIM_EN, netdev_link_down(), out, tg3_bmcr_reset(), TG3_CPMU_CTRL, TG3_CPMU_LSPD_1000MB_CLK, tg3_flag, tg3_link_report(), tg3_phy_apply_otp(), TG3_PHY_AUXCTL_SMDSP_DISABLE, TG3_PHY_AUXCTL_SMDSP_ENABLE, tg3_phy_auxctl_write(), TG3_PHY_ID_BCM5401, TG3_PHY_ID_MASK, tg3_phy_reset_5703_4_5(), tg3_phy_set_wirespeed(), tg3_phy_toggle_automdix(), tg3_phydsp_write(), TG3_PHYFLG_5704_A0_BUG, TG3_PHYFLG_ADC_BUG, TG3_PHYFLG_ADJUST_TRIM, TG3_PHYFLG_BER_BUG, TG3_PHYFLG_JITTER_BUG, TG3_PHYFLG_MII_SERDES, tg3_readphy(), tg3_writephy(), tp, tr32, tw32, tw32_f, udelay(), and val.
Referenced by tg3_phy_probe(), tg3_reset_hw(), tg3_setup_copper_phy(), and tg3_setup_fiber_mii_phy().
Definition at line 737 of file tg3_phy.c.
References ADVERTISE_1000FULL, ADVERTISE_1000HALF, ADVERTISE_100FULL, ADVERTISE_100HALF, ADVERTISE_10FULL, ADVERTISE_10HALF, ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, DBGP, MII_ADVERTISE, MII_TG3_CTRL, TG3_PHYFLG_10_100_ONLY, tg3_readphy(), and tp.
Referenced by tg3_phy_probe(), and tg3_setup_copper_phy().
Definition at line 774 of file tg3_phy.c.
References ADVERTISE_PAUSE_ASYM, ADVERTISE_PAUSE_CAP, DBGP, FLOW_CTRL_RX, and FLOW_CTRL_TX.
Referenced by tg3_adv_1000T_flowctrl_ok(), and tg3_phy_autoneg_cfg().
Definition at line 791 of file tg3_phy.c.
References __unused, ADVERTISE_100FULL, ADVERTISE_100HALF, ADVERTISE_10FULL, ADVERTISE_10HALF, ADVERTISE_CSMA, ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, CHIPREV_ID_5701_A0, CHIPREV_ID_5701_B0, DBGP, done, flowctrl, MII_ADVERTISE, MII_TG3_CTRL, MII_TG3_CTRL_ADV_1000_FULL, MII_TG3_CTRL_ADV_1000_HALF, MII_TG3_CTRL_AS_MASTER, MII_TG3_CTRL_ENABLE_AS_MASTER, tg3_advert_flowctrl_1000T(), TG3_PHYFLG_10_100_ONLY, TG3_PHYFLG_EEE_CAP, tg3_writephy(), tp, and val.
Referenced by tg3_phy_copper_begin(), and tg3_phy_probe().
|
static |
Definition at line 838 of file tg3_phy.c.
References DBGP, MII_TG3_AUXCTL_SHDWSEL_AUXCTL, tg3_phy_auxctl_write(), tg3_phydsp_write(), tp, and udelay().
Referenced by tg3_phy_probe(), and tg3_setup_copper_phy().
|
static |
Definition at line 865 of file tg3_phy.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, ADVERTISED_Autoneg, ADVERTISED_FIBRE, ADVERTISED_Pause, ADVERTISED_TP, tulip_private::advertising, AUTONEG_ENABLE, AUTONEG_INVALID, DBGP, DUPLEX_INVALID, SPEED_INVALID, TG3_PHYFLG_10_100_ONLY, TG3_PHYFLG_ANY_SERDES, and tp.
Referenced by tg3_phy_probe().
int tg3_phy_probe | ( | struct tg3 * | tp | ) |
Definition at line 895 of file tg3_phy.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, tulip_private::advertising, ASIC_REV_57765, BMCR_ANENABLE, BMCR_ANRESTART, BMSR_LSTATUS, CHIPREV_ID_5717_A0, CHIPREV_ID_57765_A0, DBGC, DBGP, ENODEV, FLOW_CTRL_RX, FLOW_CTRL_TX, GET_ASIC_REV, MII_BMCR, MII_BMSR, MII_PHYSID1, MII_PHYSID2, subsys_tbl_ent::phy_id, tg3_copper_is_advertising_all(), tg3_flag, tg3_flag_set, tg3_init_5401phy_dsp(), TG3_KNOWN_PHY_ID, tg3_lookup_by_subsys(), tg3_phy_autoneg_cfg(), TG3_PHY_ID_BCM5401, TG3_PHY_ID_BCM8002, TG3_PHY_ID_INVALID, TG3_PHY_ID_MASK, tg3_phy_init_link_config(), tg3_phy_reset(), tg3_phy_set_wirespeed(), TG3_PHYFLG_ANY_SERDES, TG3_PHYFLG_EEE_CAP, TG3_PHYFLG_PHY_SERDES, tg3_readphy(), tg3_writephy(), TG3PCI_DEVICE_TIGON3_5718, and tp.
Referenced by tg3_get_invariants().
void tg3_poll_link | ( | struct tg3 * | tp | ) |
Definition at line 1008 of file tg3_phy.c.
References DBGC, DBGP, SD_STATUS_LINK_CHG, tg3_setup_phy(), and tp.
Referenced by tg3_poll().
|
static |
Definition at line 1018 of file tg3_phy.c.
References DBGP, DUPLEX_FULL, DUPLEX_HALF, DUPLEX_INVALID, MII_TG3_AUX_STAT_100, MII_TG3_AUX_STAT_1000FULL, MII_TG3_AUX_STAT_1000HALF, MII_TG3_AUX_STAT_100FULL, MII_TG3_AUX_STAT_100HALF, MII_TG3_AUX_STAT_10FULL, MII_TG3_AUX_STAT_10HALF, MII_TG3_AUX_STAT_FULL, MII_TG3_AUX_STAT_SPDMASK, SPEED_10, SPEED_100, SPEED_1000, SPEED_INVALID, TG3_PHYFLG_IS_FET, tp, and val.
Referenced by tg3_setup_copper_phy().
Definition at line 1066 of file tg3_phy.c.
References ADVERTISE_PAUSE_ASYM, ADVERTISE_PAUSE_CAP, DBGP, DUPLEX_FULL, MII_ADVERTISE, MII_LPA, tg3_advert_flowctrl_1000T(), tg3_flag, tg3_readphy(), tg3_writephy(), and tp.
Referenced by tg3_setup_copper_phy().
Definition at line 1100 of file tg3_phy.c.
References ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, DBGP, FLOW_CTRL_RX, FLOW_CTRL_TX, LPA_1000XPAUSE, and LPA_1000XPAUSE_ASYM.
Referenced by tg3_setup_flow_control().
Definition at line 1123 of file tg3_phy.c.
References DBGP, FLOW_CTRL_RX, FLOW_CTRL_TX, flowctrl, MAC_RX_MODE, MAC_TX_MODE, mii_resolve_flowctrl_fdx(), RX_MODE_FLOW_CTRL_ENABLE, tg3_flag, TG3_PHYFLG_ANY_SERDES, tg3_resolve_flowctrl_1000X(), tp, tw32_f, and TX_MODE_FLOW_CTRL_ENABLE.
Referenced by tg3_setup_copper_phy(), tg3_setup_fiber_by_hand(), tg3_setup_fiber_hw_autoneg(), and tg3_setup_fiber_mii_phy().
|
static |
Definition at line 1157 of file tg3_phy.c.
References ADVERTISED_1000baseT_Full, ADVERTISED_1000baseT_Half, ADVERTISED_100baseT_Full, ADVERTISED_100baseT_Half, ADVERTISED_10baseT_Full, ADVERTISED_10baseT_Half, tulip_private::advertising, BMCR_ANENABLE, BMCR_ANRESTART, DBGP, DUPLEX_FULL, MII_BMCR, SPEED_100, SPEED_1000, SPEED_INVALID, tg3_phy_autoneg_cfg(), TG3_PHYFLG_10_100_ONLY, tg3_writephy(), and tp.
Referenced by tg3_setup_copper_phy().
Definition at line 1196 of file tg3_phy.c.
References DBGP, LED_CTRL_MODE_PHY_2, SPEED_10, TG3_PHY_ID_BCM5411, TG3_PHY_ID_MASK, and tp.
Referenced by tg3_setup_copper_phy().
|
static |
Definition at line 1212 of file tg3_phy.c.
References DBGP, FWCMD_NICDRV_LINK_UPDATE, MII_ADVERTISE, MII_BMCR, MII_BMSR, MII_CTRL1000, MII_LPA, MII_PHYADDR, MII_STAT1000, NIC_SRAM_FW_CMD_DATA_MBOX, NIC_SRAM_FW_CMD_LEN_MBOX, NIC_SRAM_FW_CMD_MBOX, reg, tg3_flag, tg3_generate_fw_event(), TG3_PHYFLG_MII_SERDES, tg3_readphy(), tg3_wait_for_event_ack(), tg3_write_mem(), tp, and val.
Referenced by tg3_link_report().
Definition at line 1354 of file tg3_phy.c.
References ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, FLOW_CTRL_RX, and FLOW_CTRL_TX.
Referenced by tg3_fiber_aneg_smachine(), tg3_setup_fiber_hw_autoneg(), and tg3_setup_fiber_mii_phy().
|
static |
Definition at line 1370 of file tg3_phy.c.
References BMCR_RESET, MAC_STATUS, MAC_STATUS_PCS_SYNCED, MII_BMCR, tg3_flag, tg3_writephy(), tp, tr32, and udelay().
Referenced by tg3_setup_fiber_phy().
Definition at line 1420 of file tg3_phy.c.
References ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, AUTONEG_ENABLE, CHIPREV_ID_5704_A0, CHIPREV_ID_5704_A1, DUAL_MAC_CTRL_ID, flowctrl, LPA_1000XPAUSE, LPA_1000XPAUSE_ASYM, MAC_SERDES_CFG, MAC_STATUS, MAC_STATUS_PCS_SYNCED, MAC_STATUS_RCVD_CFG, MAC_STATUS_SIGNAL_DET, mii_adv_to_ethtool_adv_x(), out, SERDES_AN_TIMEOUT_5704S, SERDES_PARALLEL_DET_TIMEOUT, SG_DIG_ASYM_PAUSE, SG_DIG_AUTONEG_COMPLETE, SG_DIG_COMMON_SETUP, SG_DIG_CTRL, SG_DIG_PARTNER_ASYM_PAUSE, SG_DIG_PARTNER_PAUSE_CAPABLE, SG_DIG_PAUSE_CAP, SG_DIG_SOFT_RESET, SG_DIG_STATUS, SG_DIG_USING_HW_AUTONEG, tg3_advert_flowctrl_1000X(), TG3_PHYFLG_PARALLEL_DETECT, tg3_setup_flow_control(), TG3PCI_DUAL_MAC_CTRL, tp, tr32, tw32_f, udelay(), and val.
Referenced by tg3_setup_fiber_phy().
|
static |
Definition at line 1565 of file tg3_phy.c.
References tg3_fiber_aneginfo::ability_match, tg3_fiber_aneginfo::ability_match_cfg, tg3_fiber_aneginfo::ability_match_count, tg3_fiber_aneginfo::ack_match, ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, ANEG_CFG_ACK, ANEG_CFG_FD, ANEG_CFG_HD, ANEG_CFG_INVAL, ANEG_CFG_NP, ANEG_CFG_PS1, ANEG_CFG_PS2, ANEG_CFG_RF1, ANEG_CFG_RF2, ANEG_DONE, ANEG_FAILED, ANEG_OK, ANEG_STATE_ABILITY_DETECT, ANEG_STATE_ABILITY_DETECT_INIT, ANEG_STATE_ACK_DETECT, ANEG_STATE_ACK_DETECT_INIT, ANEG_STATE_AN_ENABLE, ANEG_STATE_COMPLETE_ACK, ANEG_STATE_COMPLETE_ACK_INIT, ANEG_STATE_DISABLE_LINK_OK, ANEG_STATE_IDLE_DETECT, ANEG_STATE_IDLE_DETECT_INIT, ANEG_STATE_LINK_OK, ANEG_STATE_NEXT_PAGE_WAIT, ANEG_STATE_NEXT_PAGE_WAIT_INIT, ANEG_STATE_RESTART, ANEG_STATE_RESTART_INIT, ANEG_STATE_SETTLE_TIME, ANEG_STATE_UNKNOWN, ANEG_TIMER_ENAB, tg3_fiber_aneginfo::cur_time, tg3_fiber_aneginfo::flags, flowctrl, tg3_fiber_aneginfo::idle_match, tg3_fiber_aneginfo::link_time, MAC_MODE, MAC_MODE_SEND_CONFIGS, MAC_RX_AUTO_NEG, MAC_STATUS, MAC_STATUS_RCVD_CFG, MAC_TX_AUTO_NEG, MR_AN_COMPLETE, MR_AN_ENABLE, MR_LINK_OK, MR_LP_ADV_ASYM_PAUSE, MR_LP_ADV_FULL_DUPLEX, MR_LP_ADV_HALF_DUPLEX, MR_LP_ADV_NEXT_PAGE, MR_LP_ADV_REMOTE_FAULT1, MR_LP_ADV_REMOTE_FAULT2, MR_LP_ADV_SYM_PAUSE, MR_NP_LOADED, MR_NP_RX, MR_PAGE_RX, MR_RESTART_AN, MR_TOGGLE_RX, MR_TOGGLE_TX, tg3_fiber_aneginfo::rxconfig, tg3_fiber_aneginfo::state, tg3_advert_flowctrl_1000X(), tp, tr32, tw32, tw32_f, tg3_fiber_aneginfo::txconfig, and udelay().
Referenced by fiber_autoneg().
Definition at line 1817 of file tg3_phy.c.
References ANEG_DONE, ANEG_FAILED, ANEG_STATE_UNKNOWN, tg3_fiber_aneginfo::cur_time, tg3_fiber_aneginfo::flags, MAC_MODE, MAC_MODE_PORT_MODE_GMII, MAC_MODE_PORT_MODE_MASK, MAC_MODE_SEND_CONFIGS, MAC_TX_AUTO_NEG, memset(), MR_AN_COMPLETE, MR_AN_ENABLE, MR_LINK_OK, MR_LP_ADV_FULL_DUPLEX, tg3_fiber_aneginfo::state, status, tg3_fiber_aneg_smachine(), tick, tmp, tp, tw32_f, tg3_fiber_aneginfo::txconfig, and udelay().
Referenced by tg3_setup_fiber_by_hand().
Definition at line 1862 of file tg3_phy.c.
References ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, ANEG_CFG_PS1, ANEG_CFG_PS2, AUTONEG_ENABLE, fiber_autoneg(), LPA_1000XPAUSE, LPA_1000XPAUSE_ASYM, MAC_MODE, MAC_MODE_SEND_CONFIGS, MAC_STATUS, MAC_STATUS_CFG_CHANGED, MAC_STATUS_PCS_SYNCED, MAC_STATUS_RCVD_CFG, MAC_STATUS_SYNC_CHANGED, mii_adv_to_ethtool_adv_x(), MR_LP_ADV_ASYM_PAUSE, MR_LP_ADV_SYM_PAUSE, out, tg3_setup_flow_control(), tp, tr32, tw32_f, and udelay().
Referenced by tg3_setup_fiber_phy().
|
static |
Definition at line 1927 of file tg3_phy.c.
References netdev_link_down(), netdev_link_up(), tg3_link_report(), TG3_PHYFLG_MII_SERDES, TG3_PHYFLG_PARALLEL_DETECT, and tp.
Referenced by tg3_setup_fiber_mii_phy(), and tg3_setup_fiber_phy().
|
static |
Definition at line 1945 of file tg3_phy.c.
References MAC_EVENT, MAC_STATUS, MAC_STATUS_CFG_CHANGED, MAC_STATUS_LNKSTATE_CHANGED, MAC_STATUS_MI_COMPLETION, MAC_STATUS_SYNC_CHANGED, tw32, tw32_f, and udelay().
Referenced by tg3_setup_fiber_mii_phy().
|
static |
Definition at line 1957 of file tg3_phy.c.
References AUTONEG_ENABLE, DUPLEX_FULL, DUPLEX_UNKNOWN, LED_CTRL_1000MBPS_ON, LED_CTRL_LNKLED_OVERRIDE, LED_CTRL_TRAFFIC_OVERRIDE, MAC_EVENT, MAC_EVENT_LNKSTATE_CHANGED, MAC_LED_CTRL, MAC_MODE, MAC_MODE_HALF_DUPLEX, MAC_MODE_PORT_MODE_MASK, MAC_MODE_PORT_MODE_TBI, MAC_MODE_SEND_CONFIGS, MAC_STATUS, MAC_STATUS_CFG_CHANGED, MAC_STATUS_LNKSTATE_CHANGED, MAC_STATUS_PCS_SYNCED, MAC_STATUS_RCVD_CFG, MAC_STATUS_SIGNAL_DET, MAC_STATUS_SYNC_CHANGED, MAC_TX_AUTO_NEG, SD_STATUS_LINK_CHG, SD_STATUS_UPDATED, SPEED_1000, SPEED_UNKNOWN, tg3_flag, tg3_init_bcm8002(), tg3_link_report(), TG3_PHY_ID_BCM8002, tg3_setup_fiber_by_hand(), tg3_setup_fiber_hw_autoneg(), tg3_test_and_report_link_chg(), tp, tr32, tw32, tw32_f, and udelay().
Referenced by tg3_setup_phy().
|
static |
Definition at line 2060 of file tg3_phy.c.
References ADVERTISE_1000XFULL, ADVERTISE_1000XHALF, ADVERTISE_1000XPAUSE, ADVERTISE_1000XPSE_ASYM, ADVERTISE_SLCT, tulip_private::advertising, ASIC_REV_5714, ASIC_REV_5719, ASIC_REV_5720, AUTONEG_ENABLE, BMCR_ANENABLE, BMCR_ANRESTART, BMCR_FULLDPLX, BMCR_SPEED1000, BMSR_LSTATUS, common, DUPLEX_FULL, DUPLEX_HALF, DUPLEX_UNKNOWN, ethtool_adv_to_mii_adv_x(), GET_ASIC_REV, MAC_EVENT, MAC_EVENT_LNKSTATE_CHANGED, MAC_MODE, MAC_MODE_HALF_DUPLEX, MAC_MODE_PORT_MODE_GMII, MAC_MODE_PORT_MODE_MASK, MAC_MODE_PORT_MODE_MII, MAC_TX_STATUS, mii_adv_to_ethtool_adv_x(), MII_ADVERTISE, MII_BMCR, MII_BMSR, MII_LPA, netdev_link_down(), SERDES_AN_TIMEOUT_5714S, SERDES_TG3_1000X_STATUS, SERDES_TG3_FULL_DUPLEX, SERDES_TG3_LINK_UP, SERDES_TG3_SGMII_MODE, SERDES_TG3_SPEED_100, SERDES_TG3_SPEED_1000, SPEED_10, SPEED_100, SPEED_1000, SPEED_UNKNOWN, tg3_advert_flowctrl_1000X(), tg3_clear_mac_status(), tg3_flag, tg3_phy_reset(), TG3_PHYFLG_PARALLEL_DETECT, tg3_readphy(), tg3_setup_flow_control(), tg3_test_and_report_link_chg(), tg3_writephy(), tp, tr32, tw32_f, TX_STATUS_LINK_UP, and udelay().
Referenced by tg3_setup_phy().
|
static |
Definition at line 2254 of file tg3_phy.c.
References tulip_private::advertising, ASIC_REV_5700, ASIC_REV_5701, ASIC_REV_5703, ASIC_REV_5704, ASIC_REV_5705, BMCR_ANENABLE, BMSR_LSTATUS, CHIPREV_ID_5700_ALTIMA, CHIPREV_ID_5701_A0, CHIPREV_ID_5701_B0, DBGP, DUPLEX_FULL, DUPLEX_HALF, DUPLEX_INVALID, GET_ASIC_REV, LED_CTRL_MODE_PHY_1, MAC_EVENT, MAC_EVENT_LNKSTATE_CHANGED, MAC_MI_MODE, MAC_MI_MODE_AUTO_POLL, MAC_MODE, MAC_MODE_HALF_DUPLEX, MAC_MODE_LINK_POLARITY, MAC_MODE_PORT_INT_LPBACK, MAC_MODE_PORT_MODE_GMII, MAC_MODE_PORT_MODE_MASK, MAC_MODE_PORT_MODE_MII, MAC_STATUS, MAC_STATUS_CFG_CHANGED, MAC_STATUS_LNKSTATE_CHANGED, MAC_STATUS_MI_COMPLETION, MAC_STATUS_SYNC_CHANGED, MII_BMCR, MII_BMSR, MII_TG3_AUX_STAT, MII_TG3_AUXCTL_SHDWSEL_MISCTEST, MII_TG3_AUXCTL_SHDWSEL_PWRCTL, MII_TG3_EXT_CTRL, MII_TG3_EXT_CTRL_LNK3_LED_MODE, MII_TG3_IMASK, MII_TG3_INT_LINKCHG, MII_TG3_ISTAT, MII_TG3_MISC_SHDW, netdev_link_down(), netdev_link_ok(), netdev_link_up(), NIC_SRAM_FIRMWARE_MBOX, NIC_SRAM_FIRMWARE_MBOX_MAGIC2, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_CLKREQ_EN, pci_read_config_word(), pci_write_config_word(), SPEED_10, SPEED_100, SPEED_1000, SPEED_INVALID, tg3_5700_link_polarity(), tg3_adv_1000T_flowctrl_ok(), tg3_aux_stat_to_speed_duplex(), tg3_copper_is_advertising_all(), tg3_flag, tg3_init_5401phy_dsp(), tg3_link_report(), tg3_phy_auxctl_read(), tg3_phy_auxctl_write(), tg3_phy_copper_begin(), TG3_PHY_ID_BCM5401, TG3_PHY_ID_BCM5411, TG3_PHY_ID_MASK, TG3_PHY_ID_REV_MASK, tg3_phy_reset(), TG3_PHY_REV_BCM5401_B0, TG3_PHYFLG_CAPACITIVE_COUPLING, TG3_PHYFLG_IS_FET, TG3_PHYFLG_USE_MI_INTERRUPT, tg3_readphy(), tg3_setup_flow_control(), tg3_write_mem(), tg3_writephy(), tp, tw32, tw32_f, udelay(), and val.
Referenced by tg3_setup_phy().
int tg3_setup_phy | ( | struct tg3 * | tp, |
int | force_reset | ||
) |
Definition at line 2520 of file tg3_phy.c.
References ASIC_REV_5720, DBGP, DEFAULT_STAT_COAL_TICKS, DUPLEX_HALF, GET_ASIC_REV, HOSTCC_STAT_COAL_TICKS, MAC_TX_LENGTHS, netdev_link_ok(), PCIE_PWR_MGMT_L1_THRESH_MSK, PCIE_PWR_MGMT_THRESH, SPEED_1000, tg3_flag, TG3_PHYFLG_MII_SERDES, TG3_PHYFLG_PHY_SERDES, tg3_setup_copper_phy(), tg3_setup_fiber_mii_phy(), tg3_setup_fiber_phy(), tp, tr32, tw32, TX_LENGTHS_CNT_DWN_VAL_MSK, TX_LENGTHS_IPG_CRS_SHIFT, TX_LENGTHS_IPG_SHIFT, TX_LENGTHS_JMB_FRM_LEN_MSK, TX_LENGTHS_SLOT_TIME_SHIFT, and val.
Referenced by tg3_init_one(), tg3_poll_link(), and tg3_reset_hw().
|
static |
Definition at line 140 of file tg3_phy.c.
Referenced by tg3_lookup_by_subsys().