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/AM3352:DP83867的以太网问题

Guru**** 2616675 points

Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/647584/linux-am3352-ethernet-issue-with-dp83867

器件型号:AM3352

工具/软件:Linux

尊敬的香榭丽舍

2 x DP83867与我的客户电路板中的 AM3352搭配使用、他们发现以下2个问题。

-TX 数据包传输-与 PC 连接时,ping 正常,但不使用 Telnet 或其它方式传输数据。

                  似乎无法传输长数据包(1024字节)。

-即使用户仅链接 eth1,eth0也会一起关闭。 例如、当用户使用 ifconfig eth1 down 链接 eth1时、eth0也会一起链接。  

客户正在使用 RGMII I/F 且仅使用10/100模式。

您能否在下面查看他们的 DTS 文件并提供指南、在这种情况下应该检查哪些内容?

e2e.ti.com/.../am335x.zip

谢谢、此致、

SI

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

    您好!

    [引用 user="Sung-IL"]  似乎无法传输长数据包(1024字节)。

    Sitara 器件不支持巨型帧。

    [引用 user="Sung-IL"]当用户使用 ifconfig eth1 down 链接 eth1时,eth0也会一起链接。

    PHY 的时钟源是什么?

    请发布 Linux 版本。 也请遵循此检查清单并发布结果: processors.wiki.ti.com/.../5x_CPSW

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉。 软件为 Linux PSDK 4.01、PHY 的时钟源为25MHz。

    对于 TX 问题、我的意思是 PC 的 telnet 无法从 AM3352定制板获取任何数据。 我认为这不是巨型帧问题。

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

    [引用 user="Sung-IL"]抱歉。 软件为 Linux PSDK 4.01、PHY 的时钟源为25MHz。[/quot]

    时钟源是什么? PHY 的时钟是单独计时还是由同一个时钟源计时?

    请填写 CPSW 检查清单并发布结果。 在将该线程上报给以太网专家之前、必须执行此操作。

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

    相同源时钟和分离时钟之间有何区别?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想知道这两个 PHY 是使用相同的时钟源还是使用不同的时钟源计时?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在调试相同的问题。
    两个 PHY 的时钟来自间隔时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、这很清楚。 请填写 CPSW 检查清单(上面给出的链接)并发布结果。 在将该线程上报给以太网专家之前、必须执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 wiki 上附上了他们的问题答案、如下所示。

    e2e.ti.com/.../cpsw.docx

    他们的日志如下所示。

    e2e.ti.com/.../cpsw_5F00_int.zip

    如果您需要更多信息将此问题上报给以太网专家、请告知我。

    谢谢、此致、

    SI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 SI、
    感谢您发布检查清单项目。 以下是我有的几个问题:

    端口如何获取 IP 地址? eth0和 eth1都位于以后可以寻址的同一子网上。 eth1是否有链接伙伴、如果有、则需要调查未检测到的链接。

    通过查看 EMAC DTS 节点、phy 模式是不同的:

    cpsw_emac0{&cpsw_emac0}
    PHY_ID =<&Davinci_MDIO>、<0x0>;
    PHY-MODE ="RGMII-id";
    DUAL_EMAC_res_vlan =<1>;
    };

    cpsw_emac1{&cpsw_emac1}
    PHY_ID =<&Davinci_MDIO>、<0xD>;
    PHY-MODE ="RGMII-d"; ---- 为什么这与 cpsw_emac0的 phy 模式不一样、它是"RGMII-id"?
    DUAL_EMAC_res_vlan =<2>;
    };

    尝试根本不启动 eth1并执行 ping 测试。 请附上 Wireshark 捕获的副本、另请在启动 ping 命令之前启动捕获。 我将看到 ARP 请求过程。


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

    Schuyler、您好、

    感谢您的即时响应。

    下面是 Wireshark 捕获、它们将数据包大小设置为128字节(成功)、然后将其设置为256字节(失败-无响应)。

    e2e.ti.com/.../1667.wireshark.zip

    PC:dump_icmp_eth0_single.pcapng

    AIM:AIM:AIM pkt_dump_PC_icmp_eth0_single.pkt

    对于您的问题、  

    ifconfig 中分配的 IP。 而 eth0/eth1是彼此不同的子网。 网络掩码为255.255.255.128 (不是255.255.255.0)。

    他们修改了 DTS 文件、如下所示。

    -cpsw_emac0     à phy_mode:“RGMII-id”;

    -cpsw_emac1     à phy_mode:“RGMII-id”;

    以下是有关 TX 传输失败的更多信息。

    1. TX 传输失败

      -不超过1024字节的数据包

     -传输失败主要发生在250字节以上的数据包中。(不是大型帧问题)

     -对于超过250字节的数据包,所有 telnet、ping、tftp 都失败了。

     -使用低于200字节的数据包时,使用 telnet 不会出现问题。

     - Ping 失败、出现"ping -s 250"。

    谢谢、此致、

    SI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TX 数据包传输-与 PC 连接时、ping 正常、但不使用 Telnet 或其他方式传输数据。

    似乎无法传输长数据包(1024字节)。

    此问题已得到解决。 Sitara clcok 设置将24MHz 更改为25MHz。 硬件设置为25MHz。

    以下问题仍未解决。
    您能指导解决这个问题。
    我在 e2e 发现了几个问题、但我没有找到解决此问题的解决方案。

    -即使用户仅链接 eth1,eth0也会一起关闭。 例如、当用户使用 ifconfig eth1 down 链接 eth1时、eth0也会一起链接。
    客户正在使用 RGMII I/F 且仅使用10/100模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Schuyler、您好、

    正如 Philip 所说的、通过更改 u-boot 中的错误时钟设置来解决了"TX 数据包传输"问题、现在我们需要重点说明为什么 eth0会同时关闭。
    您能否提供一个指南、让他们检查以解决此问题? 您是否需要更多信息来研究此问题?


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

    内核配置是否与 TI SDK 提供的内核配置大不相同? 如果是快速检查、则可以使用默认的 TI SDK 内核配置。

    请客户从两个端口启动时执行以下命令:
    ifconfig -a
    ethtool eth0
    ethtool eth1.
    ethtool -S eth0
    然后向下执行端口并重复上述步骤。 请随控制台日志的副本附上结果。

    此外、请执行这些命令并附加结果:

    LS /proc/device-tree/ocp/ethernet@4a100000

    hexdump -C /proc/device-tree/ocp/ethernet@4a100000/slave\@4a100200/phy_id
    hexdump -C /proc/device-tree/ocp/ethernet@4a100000/slave\@4a100300/phy_id

    我还想确保我了解客户看到的顺序:
    在 eth0和 eth1同时打开的情况下、执行 ifconfig eth0 down 会使 eth1停止。

    是否有任何消息表明 eth1正在下降? 如果没有消息、如何检测到 ETH1下降?

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

    感谢您的回答和建议。
    此问题是否可能由 u-boot 配置引起?


    我们将按照您的建议再次检查内核配置、并将很快发布测试结果。


    谢谢、此致、
    SI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 SI、
    我不认为 U-Boot 会导致问题、因为 U-Boot 一次只能使用一个以太网接口。 这是一个很好的问题、我认为我们需要回顾引脚多路复用器对于两个所需接口都是正确的、并确保没有任何问题。
    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Schuyler、您好、

    您能否在下面查看您的请求的附加日志?

    e2e.ti.com/.../Log.zip

    谢谢、此致、

    SI

    内核配置是否与 TI SDK 提供的内核配置大不相同? 如果是快速检查、则可以使用默认的 TI SDK 内核配置。

    请客户从两个端口启动时执行以下命令:
    ifconfig -a  
    ethtool eth0
    ethtool eth1.
    ethtool -S eth0
    然后向下执行端口并重复上述步骤。 请随控制台日志的副本附上结果。

    此外、请执行这些命令并附加结果:

    LS /proc/device-tree/ocp/ethernet@4a100000

    hexdump -C /proc/device-tree/ocp/ethernet@4a100000/slave\@4a100200/phy_id
    hexdump -C /proc/device-tree/ocp/ethernet@4a100000/slave\@4a100300/phy_id

    我还想确保我了解客户看到的顺序:
    在 eth0和 eth1同时打开的情况下、执行 ifconfig eth0 down 会使 eth1停止。  

    是否有任何消息表明 eth1正在下降? 如果没有消息、如何检测到 ETH1下降?

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

    感谢您提供所请求的数据。 查看链路断开状态和 ethtool 结果、以查看检测到的链路未显示连接的两个端口。 如果没有链路检测、cpsw 驱动程序将无法获取接口的 IP 地址。 如果命令接口的 ifconfig eth0 up 且未检测到链接、则问题可能与软件无关。 例如、这可能表示 PHY 未正确复位或未正确读取捆绑的问题。 连接的引导日志是否用于链路断开状态? ethtool 捕获是在何时完成的? 在电路板完成引导后?

    此致、
    Schuyler

    root@AM335x-EVM:~# ethtool eth0

    检测到链接:否 <--- PHY 未连接到链路伙伴。


    ETH1 链接地址:以太网 HWaddr 98:5D:AD:48:B5:D3
    广播多播 MTU:1500公制:1

    root@AM335x-EVM:~# ethtool eth1.

    检测到链路:否<--- PHY 未连接到链路伙伴。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Schuyler、您好、

    他们捕获的日志如下所示。

    1.引导(booting-log.txt)

    2. ifconfig–a (Normal/ifconfig–a.txt)

    3. ethtool eth0 (Normal/ethtool eth0.txt)

    4. ethtool eth1 (Normal/ethtool eth1.txt)

    5. ethtool–S eth0 (Normal/ethtool–S eth0.txt)

    6. ethtool–S eth1 (Normal/ethtool–S eth1.txt)

    7. LS /proc/device-tree/ocp/ethernet@4a100000 (正常/六转储-C prodevice-treeocpeethernet@4a100000slave@4a100200phy_id.txt)

    8. LS /proc/device-tree/ocp/ethernet@4a100000 (正常/六转储-C prodevice-treeocpethernet@4a100000slave@4a100300phy_id.txt)

    9. ifconfig eth1 down‘kernel log:cpsw 4a100000.ethernet eth0:link is down’(link-down/ifconfig -a.txt)

    10. ifconfig–a (link-down/ifconfig–a.txt)

    11. ethtool eth0 (link-down/ethtool eth0.txt)

    12. ethtool eth1 (Link-down/ethtool eth1.txt)

    13. ethtool–S eth0 (link-down/ethtool–S eth0.txt)

    14. ethtool–S eth1 (Link-down/ethtool–S eth1.txt)

    15。LS /proc/device-tree/ocp/ethernet@4a100000 (Link-down/hexdump -C prodevice-treeocpethernet@4a100000slave@4a100200phy_id.txt)

    16. LS /proc/device-tree/ocp/ethernet@4a100000 (Link-down/hexdump -C prodevice-treeocpeethernet@4a100000slave@4a100300phy_id.txt)

    在1 ~ 8期间、似乎没有问题、并且检测到链路良好、并且每个以太网端口从不同的 DHCP 服务器成功获取 IP 地址(位于'/Normal"目录下)。

    例如,在引导时似乎没有问题,并且在尝试使用 ifconfig 关闭'eth1'之前,所有以太网端口都运行良好。

    从9 (第9个日志)中,您可以找到“kernel log:cpsw 4a100000.ethernet eth0:link is down”消息,尽管只有 eth1已关闭。

    10 ~ 16个日志、所有日志都在发生"Link-Down"之后。

    很抱歉让你感到困惑。

    一件奇怪的事情是只有'eth0'下降时没有问题。 例如、当只有'eth0'被'ifconfig eth0 down'关闭时、eth1仍按预期连接。 这似乎与端口序列有关。 例如、因为 eth1在 eth0之前初始化。

    在从 Booting-log.txt 捕获的第290行以下、'net eth0:initialized cpsw ale version 1.4'的含义是什么? 这是否与此问题相关?

    您是否仍然认为链接连接存在问题?

    谢谢、此致、

    SI

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

    感谢对数据采集顺序的澄清。 这有助于解决我遇到的一些问题。 您的最后一点我同意、eth1首先初始化似乎很奇怪。 它可能是相关的、它几乎就像 PHY 寻址在接口之间交换一样。

    当 eth0被取低而 eth1被加高时、会发生什么情况? 另请尝试在链路建立时拔下 eth0、然后拔下相同的 eth1。 请在每个步骤之后附加控制台日志以及每个接口的 ethool 结果。

    我再次查看了引脚多路复用器、就像用于 TI EVM-SK 电路板的一样。

    目前、我正在研究 PHY 寻址是如何完成的、客户在 DTS 文件中使用十六进制寻址、他们是否可以尝试十进制寻址?
    示例如下:

    dp83867_0:ethernet-phy@0{
    reg =<0>;

    };
    dp83867_1:ethernet-phy@13{
    reg =<13>;

    };

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

    Schuyler、您好、

    在 DTS 中更改十进制寻址后仍然存在问题。 我附上了 DTS 文件、请检查我们的修改是否正确。(zip 文件-请解压缩。)

    e2e.ti.com/.../am335x_2D00_decimal.zip

    此外、我还附加了一个日志、其中显示了启动后的测试。

    在第611行中、您可以发现"ifconfig eth0 down (ifconfig eth0 down)"没有问题。

    在第664行中、您可以发现2个以太网端口在'ifconfig eth1 down'下已关闭、2个以太网端口在打印'cpsw 4a100000.ethernet eth0:link is down'消息后未工作。

    e2e.ti.com/.../5773.Log.txt

    谢谢、此致、

    SI

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

    感谢控制台日志和 ethtool 命令的输出。 客户是否碰巧尝试了电缆测试? 如果没有、请尝试拔下连接到 eth1的电缆、然后再次对两个端口执行 ethtool。 我想看看两个 PHY 在电缆断开时是否都会受到影响。

    是否对 am33xx.dtsi 文件进行了任何更改? 是否在内核中对内核进行了内核配置更改以包含 TI PHY 驱动程序? 从内核登录行中、看起来内核是重新构建的、是这样吗?

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

    Schuyler、您好、

    感谢您的即时响应。

    我在 eth1中断开电缆连接时连接了日志、打印'ifconfig -a '后、他们从'eth1'中移除了电缆。

     您可以在   第‘行中找到[48.483182] cpsw 4a100000.ethernet eth1: link is down’msg,它描述了 eth1处的电缆断开连接。

    e2e.ti.com/.../7367.Log2.txt

    am33xx.dts 中没有变化、我将其附在下面。(请解压缩)

    e2e.ti.com/.../3513.am33xx.zip

    对于重建的内核、是的。 他们重建了内核、以添加具有以下配置文件的 dp83867驱动程序。

    e2e.ti.com/.../config.zip

    谢谢、此致、

    SI

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

    如果我正确理解、在 ETH1上拔下电缆后、eth0连接保持活动状态。

    我接下来要尝试从内核配置中删除 TI PHY 驱动程序。 明天我将在 TI AM335x-EVMSK 上进行此测试、作为测试、以查看 Defult PHY 是否能正常工作并告知您。

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

    我在内核之外配置了 AM335x-EVMSK 电路板上的 Atheros 驱动程序、网络出现了。 您能否让客户在内核配置中编译 TI PHY? 这不是一个解决方案、而是一个测试、以确定此问题是否来自 PHY 驱动程序。 应自动使用默认 PHY。 客户应看到驱动程序未知消息、但链接仍应出现。

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

    Schuyler、您好、

    客户修改了随附的 DTS 文件、并按照您的建议使用预构建的 zImage 进行测试、

    但无法使用以下日志显示链接。 PHY 似乎检测良好、但无法建立链路。

    他们使用的 DTS 文件是 e2e.ti.com/.../am335x.dts.1.zip

    日志如下所示。

    [1.004451]  libphy:固定 MDIO 总线:探测

    [1.081952]  DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6

    [1.088091]  DaVinci_MDIO 4a101000.MDIO:检测到的 phy 掩码 ffdffe

    [1.0956598]  libphy: 4a101000.mdio:探测

    [1.099740]  DaVinci_MDIO 4a101000.MDIO:PHY[0]:器件4a101000.MDIO:00、驱动程序 TI DP83867

    [1.108129]  DaVinci_MDIO 4a101000.MDIO:PHY[13]:器件4a101000.MDIO:0d、驱动程序 TI DP83867

    [1.117213]  cpsw 4a100000.以太网:检测到的 MACID = 98:5d:AD:48:a0:f2

    [1.124074]  cpsw 4a100000.以太网:CPT:溢出检查周期500 (jiffies)

    [1.132385]  cpsw 4a100000.以太网:cpsw:检测到的 MACID = 98:5d:AD:48:a0:F4

    BTW、您能否在 DP83867驱动程序文件中检查它们的修改?  e2e.ti.com/.../dp83867.zip

    关于这一问题的更多意见如下。

    *使用 ethtool 关闭 eth1时、eth0也会关闭。 正如您所理解的、这是一个问题。

     发生此问题时、他们发现 eth0中的功耗也降低了、并且几乎寄存器设置为0x1140。

    *当 eth1递减时、他们发现通过示波器观察到了如此多的数据包传输、并且似乎所有寄存器都是通过增加寄存器地址进行扫描的。   

    谢谢、此致、

    SI

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

    我建议从内核配置中删除 PHY 驱动程序。 注释掉 PHY 节点只会阻止 PHY 配置编程到 PHY、这可能会解释客户没有获得任何链接的原因。

    我尝试了从内核配置中删除 PHY 驱动程序的测试、但无法获取两个链接、从而使用 def PHY 驱动程序获取 IP 地址。 eth0可以、但不能是 eth1。 正如我说过的、这是一个隔离实验、用于隔离 PHY 驱动器是否可能存在问题。

    此时 PHY 驱动器或 PHY 本身可能处于良好状态、因为它已锁存了不打算进入的模式。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 SI、
    我将关闭该主题、以便未来的后续读者可以获得发现的信息。 根据您今天早些时候的电子邮件、问题最终证明是两个 PHY 的电压源绑定在一起、这是导致问题的原因。

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

    是的。 此问题已解决。 正如我在前一封邮件中所解释的、此问题是由硬件问题引起的、我的客户发现1.8V VTT 连接到以太网 PHY1和 PHY2、断开连接后此问题已得到解决。
    再次感谢您对此问题的大力支持!


    谢谢、此致、
    SI