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.

[参考译文] Linux/AM5728:DP83822HF FX 模式问题。

Guru**** 2549920 points
Other Parts Discussed in Thread: DP83822HF, DP83849IF, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616469/linux-am5728-dp83822hf-fx-mode-problem

器件型号:AM5728
主题中讨论的其他器件:DP83822HFDP83849IF

工具/软件:Linux

你(们)好

我使用的是 AM572x 定制板

此外 、DP 83822HF 连接到 RPU2 eth0/eth1

 

DP83822HF PHY 芯片用于两种 FX 模式。
但存在问题。

问题是两个端口不能同时通信。

1.使用端口时不使用 B 端口,并且没有反向情况。
2.如果断开 A 端口并连接到 B 端口,则无法进行通信。

这是 phy 芯片寄存器日志

=== DP83822HF_CONFIG_intr 246=
BMCR (0x0):0x2100
BMSR (0x1):0x784d
BMSR (0x1):0x784d
PHYIDR1 (0x2):0x2000
PHYIDR2 (0x3):0xa240
CR1 (0x9):0x0
CR2 (0xA):0x4100
FLDSTS (0xF):0x0
PHYSTS (0x10):0x205
PHYSCR (0x11):0x109
RCSR (0x17):0x41
LEDCR (0x18):0x400
PHYCR (0x19):0x21
GENCFG (0x465):0x0000
===================

这是原理图

此致、

John Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现了一件新事情。
    在 FX 模式下,流量控制关闭,如下所示。
    "ETH 2:链路启动- 100Mbps/全-流量控制关闭"
    "ETH 3:链路启动- 100Mbps /全-流量控制关闭"

    但是、在 TX 模式下、流量控制开启、如下所示。
    "ETH 2:链路速率高达- 100Mbps /全速-流控 Rx/TX"
    "ETH 3:链路速率高达- 100Mbps /全速-流控 Rx/TX"

    因此、我使用"ethtool"来强制开启流量控制、
    但是、在使用"ethtool"进行设置时、会出现如下错误。
    "#Ethtool-A eth3 Rx on TX ON
    无法获取设备暂停设置:不支持操作"

    为什么在 FX 模式下关闭流量控制? "
    是否有办法在 FX 模式下打开流量控制?

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

    我们将对此进行研究。 反馈将发布在此处。

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

    我们在 FX 模式下使用的其他 PHY 芯片 DP83849IF 中发现了相同的问题。

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

    很抱歉耽误你的回答。

    您是否首先启用两个 eth 端口、如下所述:
    processors.wiki.ti.com/.../PRU-ICSS_Ethernet

    您可以共享 DTS 吗?

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


    我使用的是 AM5728的默认 DTS 设置。
    DP83822HF 是在 DP83848.c 文件中定义和使用的。


    我采用了双 Mac 绑定连接。
    问题没有解决。

    #以太网绑定
    ifconfig eth2 down;
    ifconfig eth3 down;
    echo 1 >/sys/class/net/bond0/bonding/mode;
    echo 100 >/sys/class/net/bond0/bonding/miimon;
    ifconfig bond0 192.168.0.100 netmask 255.255.254.0 up;
    echo +eth2 >/sys/class/net/bond0/bonding/slaves;
    echo +eth3 >/sys/class/net/bond0/bonding/slaves;

    此致、
    John Kim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在以太网论坛上发布了相同的问题、但问题未得到解决。

    论坛通知我联系 Linux 驱动程序团队。

    e2e.ti.com/.../617314

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

    您好!

    我发现了链路向上/向下问题的原因。



    在 fx 模式下、phy.c 代码的"phy_state_machine"函数
    无法通过"phy_interrupt_is_valid"函数读取 PHY 芯片状态的问题
    已访问。

    在此代码中、"phy_interrupt_is _valid"函数如果您删除要检查的器件、
    它将很好地判断链路上升/下降。

    在 phy.c 中

    --------------------------------------------------------------------

    PHY_NOLINK 案例:
    //if (phy_interrupt_is 有效(phydev))
    //中断;

    ERR = phy_read_status (phydev);
    如果(错误)
    中断;

    if (phydev->link){
    if (AutoNeg_enable =phydev->AutoNeg){
    ERR = phy_aneg_done (phydev);
    如果(错误< 0)
    中断;

    如果(!err){
    phydev->state = PHY_AN;
    phydev->link_timeout = PHY_AN_TIMEOUT;
    中断;


    phydev->state = PHY_RUNNING;
    netif_carrier_on (phydev->attached_dev);
    phydev->adjust_link (phydev->attached_dev);

    中断;

    实例 PHY_Running:
    /*仅在轮询或忽略时注册更改
    *自最近一次检查以来中断和链接已更改。
    *
    //if (!phy_interrupt_is _valid (phydev)){
    old_link = phydev->link;
    ERR = phy_read_status (phydev);
    如果(错误)
    中断;

    如果(old_link != phydev->link)
    phydev->state = PHY_CHANGELINK;
    //}
    中断;

    --------------------------------------------------------------------

    我怀疑 DP83822HF 相关的驱动程序代码问题。

    此致、
    John Kim

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

    感谢您分享您的解决方案。

    此致、
    Yordan