This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DP83869HM:1000BASE-X:Linux 驱动程序 dp83869.c 中未禁用自动协商

Guru**** 2392095 points
Other Parts Discussed in Thread: DP83869HM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1349643/dp83869hm-1000base-x-auto-neg-not-disabled-in-linux-driver-dp83869-c

器件型号:DP83869HM
主题中讨论的其他器件: DP83869

您好

根据 dp83869hm 数据表中9.4.2.1:

在光纤模式下、速度不是通过自动协商确定的。 链路的两端必须配置为相同的运行速度。

但是、如果我查看驱动程序代码、自动协商似乎仅针对100BASE-FX 被禁用:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/dp83869.c#n637

	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 的自动更新,以便建立一个有效的链接。

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sylvain:

    您的光纤理解是正确的。 我们在维护驱动程序代码和纠正当前存在的任何错误方面付出了额外的努力。 目前、新驱动程序尚未上传到 kernel.org。 目前、 您可以在 https://github.com/TexasInstruments/ti-ethernet-software 上找到我们最新的驱动程序。DP83869驱动程序最近已更新、可能已找到您想要的修复程序。 如果不是、请在 GitHub 上报告相关问题、这样将更容易跟踪和修复下一个修订版本。

    此致、

    阿尔瓦罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 https://github.com/TexasInstruments/ti-ethernet-software 上查看了最新的驱动器
    它是一样的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sylvain:

    明白了、我将亲自检查并查看我是否可以针对此问题提供热修复。

    请注意、我目前没有配置为光纤的 DP83869电路板来进行测试、我将提供一个驱动程序文件、以便您进行测试。 请允许我一直到这一周结束。

    此致、

    阿尔瓦罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sylvain:

    我想道歉,本周已经忙乱了,我甚至还没有看司机。 这是我的首要任务、我将在下周星期二之前提供最新情况。  

    很抱歉让你等待。

    此致、

    阿尔瓦罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sylvain:

    过去一个星期已经忙乱了。 我看到代码中有错误、我只是将禁用自动协商代码添加到了检查1000Base-x 模式的初始 if 语句中。

    请告诉我这是否适合您。

    e2e.ti.com/.../3443.dp83869.c

    此致、

    阿尔瓦罗