主题中讨论的其他器件: 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 的自动更新,以便建立一个有效的链接。
谢谢