主题中讨论的其他器件: DP83869
您好
根据 dp83869hm 数据表中9.4.2.1:
在光纤模式下、速度不是通过自动协商确定的。 链路的两端必须配置为相同的运行速度。
但是、如果我查看驱动程序代码、自动协商似乎仅针对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;
}
}
有什么解释吗?
因为在我的项目中,我必须制作一个补丁来禁用1000BASE-X 的自动更新,以便建立一个有效的链接。
谢谢