Other Parts Discussed in Thread: DP83869
Hi
According to dp83869hm datasheet, in 9.4.2.1:
In fiber mode, the speed is not decided through auto-negotiation. Both sides of the link must be configured to the same operating speed.
But if i look at the driver code, the auto negotiation seems disabled only for 100BASE_FX:
if (dp83869->mode == DP83869_RGMII_1000_BASE) { linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseX_Full_BIT, phydev->supported); } else { linkmode_set_bit(ETHTOOL_LINK_MODE_100baseFX_Full_BIT, phydev->supported); linkmode_set_bit(ETHTOOL_LINK_MODE_100baseFX_Half_BIT, phydev->supported); /* Auto neg is not supported in 100base FX mode */ bmcr = phy_read(phydev, MII_BMCR); if (bmcr < 0) return bmcr; phydev->autoneg = AUTONEG_DISABLE; linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phydev->supported); linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phydev->advertising); if (bmcr & BMCR_ANENABLE) { ret = phy_modify(phydev, MII_BMCR, BMCR_ANENABLE, 0); if (ret < 0) return ret; } }
Is there an explanation ?
because, in my project, i had to make a patch disabling auto-neg for 1000BASE-X, in order to have a working link.
thanks