Part Number: DP83869HM
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