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.

[参考译文] DP83822I:器件驱动程序中的 RGMII 设置

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1322691/dp83822i-rgmii-settings-in-device-driver

器件型号:DP83822I

您好!

我的客户认为、要使用 RGMII、应按如下方式配置该器件:

 - RGMII RX 时钟移位: 1

 - RGMII TX 时钟移位: 0

 - RGMII 模式: 1

但是、他们说、在使用 TI 提供的器件驱动程序时、TX 时钟移位最初设置为1、而没有进行更改。

TI 的器件驱动程序中是否存在错误?

谢谢你。

JH

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

    您好!

    如果客户复位 PHY (通过器件的引脚或寄存器0x1F = 0x8000)、该值将读取什么? 此外、您正在使用哪个版本的 Linux?

    此致、

    格罗姆

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

    您好!

    在不修改 Dp83822驱动器的情况下编译 petalinux 时、寄存器值为0x02C1。

    请参阅以下链接、获取 Petalinux 内核 dp83822.c  

    linux-xlnx/drivers/net/phy/dp83822.c、位于 xlnx_rebase_v5.15_sts_2022.1_update xilinx/linux-xlnx··gitHub

    谢谢!

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

    您好!

    这似乎是从您的设备树配置中提取的。 如果您看到第403行、这是从 PHY_GET_INTERNAL_DELAY 进行设置的、该行看起来是一个驱动程序之外的函数。 我建议检查树以查看是否与所设置的内容有依赖关系。

    https://github.com/Xilinx/linux-xlnx/blob/xlnx_rebase_v5.15_LTS_2022.1_update/Documentation/devicetree/bindings/net/ti%2Cdp83822.yaml

    此致、

    格罗姆

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

    您好!

    我是一个与 cho chanki 一起工作的人。

    如果 PHY_GET_INTERNAL_DELAY 返回的值为0或大于0、是否应该启用发送路径内部时钟移位?

    目前、当 PHY_GET_INTERNAL_DELAY 返回的值为0或大于0时、DP83822.c 将禁用。


    如果启用该值、DP83822将能够正常工作。


    我们想知道这是否符合 TI 的预期。

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

    您好!

    此函数使用内核的外部函数调用、但根据我们的了解、如果返回值为0或负数、它将禁用。 如果这两个返回值都不是、那么它将启用移位。

    此致、

    格罗姆

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

    您好!

    在以前的答复中有一个缺失。

    如果 phy_get_internal delay 函数返回0或负、则下面的代码会将 RGMII TX 时钟移位寄存器值设置为0。

    我认为它启用移位、而不是禁用。 在 数据表中、将寄存器的值设置为0是写入使能。

    为什么将其设置为0会禁用对函数的移位?

    linux-xlnx/drivers/net/phy/dp83822.c、位于 xlnx_rebase_v5.15_sts_2022.1_update xilinx/linux-xlnx··gitHub

    (来自 dp83822数据表)

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

    您好!

    我理解您现在要提问。 我需要向团队进行检查。 请给我,直到明天 EOD。

    此致、

    格罗姆

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

    您好!

    您能告诉我此问题发生了什么情况吗?

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

    您好!

    很抱歉耽误你的时间。  我已经和团队核实了这一点、我们得出结论、条件可能会被颠倒。  

    如果您将 TX_INT_DELAY 条件更改为>0而不是<= 0、这是否会解决您的问题?

    此致、

    格罗姆

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

    您好!

    我改变了这样的代码、它能够正常工作。

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

    您好!

    感谢您的声明、我会记下此内容、并将在下一版驱动程序中进行更改。
    此致、

    格罗姆