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.

[参考译文] AM4376:U-Boot 中的以太网问题

Guru**** 2595800 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639853/am4376-ethernet-problem-in-u-boot

器件型号:AM4376

你(们)好

我的定制板上的以太网连接有问题。 我无法 ping 任何具有100Mbps 或千兆位的 IP 地址。 软件可以识别链路速度、因此我认为连接(至少 MDIO)不是问题所在。

我使用的 KSZ9031具有 RGMII 接口、与评估板相同。

OH 和 TXCLK (来自 MAC)始终为2.5MHz、我认为对于100、它应该为25MHz、对于1000、它应该为125MHz。 RXCLK (来自 PHY)正常、当连接到100Mbps 网络时、1000和25MHz 的频率为125MHz。

U-Boot 结果:

100Mbps 以太网:

# ping 192.168.0.2
端口0、速度100、全双工上的链路
使用 cpsw 器件

超过 ARP 重试计数;重新开始
Ping 失败;主机192.168.0.2未激活

 

千兆位以太网:

# ping 192.168.0.1
端口0、速度1000、全双工上的链路
使用 cpsw 器件

超过 ARP 重试计数;重新开始
Ping 失败;主机192.168.0.1不活动

此致、

Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 请发布 U-boot 和内核版本。 另请遵循本指南并发布结果: processors.wiki.ti.com/.../5x_CPSW
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    U-Boot 为2016.05
    内核是 TI 提供的最新版本、4.9.41
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、

    您提到的表明可以识别链路速度的软件、它是您正在使用的 u-boot MII 实用程序吗? 如果您不熟悉 u-boot 中的 MII 工具、本培训将介绍该工具的相关章节。 可以连接 MII 转储0和 MII 转储0 1的输出。 命令中的第一个0是 PHY 地址、您可能需要更改此地址以匹配电路板上的 PHY 地址。

    training.ti.com/eth_sys_sw_am_devices 幻灯片17和18介绍了 MII 实用程序

    您还提到了这是定制板、您使用的是哪一个 EMAC 端口? 能否附上显示 EMAC 端口和 phy 连接的原理图片段?

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

    感谢您的回复。
    我熟悉 u-boot 中的 MII 命令。
    结果如下:

    # MII 转储0 0
    0。 (1140) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:0040) 0。 6、13 = B10速度选择= 1000Mbps
    (1000:1000) 0.12 = 1 A/N 使能
    (0800:0000) 0.11 = 0断电
    (0400:0000) 0.10 = 0隔离
    (0200:0000) 0。 9 = 0重新启动 A/N
    (0100:0100) 0。 8 = 1双工=全双工
    (0080:0000) 0。 7 = 0冲突测试使能
    (003f:0000) 0。 5 - 0 = 0 (保留)

    # MII 转储0 1
    1。 (796d) -- PHY 状态寄存器--
    (8000:0000) 1.15 = 0 100BASE-T4
    (4000:4000) 1.14 = 1 100BASE-X 全双工
    (2000:2000) 1.13 = 1个100BASE-X 半双工接口
    (1000:1000) 1.12 = 支持1 10 Mbps 全双工
    (0800:0800) 1.11 = 支持1 10 Mbps 半双工
    (0400:0000) 1.10 = 0 100BASE-T2全双工功能
    (0200:0000) 1. 9 = 0 100BASE-T2半双工
    (0100:0100) 1. 8 = 1扩展状态
    (0080:0000) 1. 7 = 0 (保留)
    (0040:0040) 1. 6 = 1mF 前导码抑制
    (0020:0020) 1. 5 = 1 A/N 完成
    (0010:0000) 1. 4 = 0远程故障
    (0008:0008) 1. 3 = 1 A/N
    (0004:0004) 1. 2 = 1链路状态
    (0002:0000) 1. 1 = 0 Jabber 检测
    (0001:0001) 1. 0 = 1扩展功能

    此外、原理图也与 AM437x GP EVM 完全相同。 它连接到端口0。

    此致、
    Robrt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    感谢您发布 MII 结果。 正如您所说的、PHY 指示的是速率为1Gbps 的自动协商链路。 由于中的设计基于 GP-EVM、因此 SDK 附带的引脚多路复用器应与您的电路板要求相匹配。

    您是否能够在链路伙伴上使用 Wireshark 来查看是否传输了任何 ARP 数据包? 我们想看看线路上是否有任何东西出现。 您还可以附上控制台日志的副本吗?

    这里有趣的一点是、您看到的 TX CLK 为2.5MHz、"看起来"表示 CPSW 驱动程序通过 MDIO 查询 PHY、并看到 PHY 为10Mbps、而不是 MII 实用程序显示的1Gbps。 这种情况可能看起来与 PHY 地址不匹配。 因此、一个好的步骤是验证电路板上的 PHY 地址是否与预期的地址相匹配。 由于这是一个新的电路板、您可能需要考虑从 MDIO 总线中移除未使用的 PHY、希望有一些电阻器可以轻松解放大。

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

    电路板上没有传输任何数据包。 我尝试直接连接到计算机并通过交换机连接、两者的结果相同、没有数据包。

    是的、如您所说、2.5MHz TXCLK 很有趣、可能是 CPSW 配置不正确。 我检查了 CPSW_SL_MACCTRL 寄存器、认为它配置正确(0x8021表示100Mbps、0x1表示1000Mbps)。 但 CPSW_WR_RGMII_CTL 寄存器的值为0、这意味着链路断开、速度为10Mbps!

    我检查了 PHY 地址自举、它都是下拉电阻、因此它应该是0。 只有一个 PHY 连接到 MAC。

    编辑:哦、CPSW 驱动程序知道配置、因为它在        cpsw.c 文件中打印"端口%d、速度%d、%s 双工上的链路"。 它似乎知道速度和链路状态、并相应地配置 mac_control。

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

    你(们)好

    您看到了我的答案吗?

    我找不到问题的根源、我在软件中检查了板载自举和 PHY 地址。 它们似乎没有造成问题。

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

    是否可以附加 DHCP 事务 u-boot 的控制台日志?

    cpsw 打印出预期速度吗?

    发送数据包时、您是否看到 PHY 的数据线切换?

    您有 AM437 gp-EVM 吗? 如果您有人可以检查 TX 时钟吗?
    您是否能够引导至 Linux 并检查以太网接口是否在那里工作?

    我下周将离开办公室。 我将要求一位团队成员回顾测量时钟的结果。

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

    你(们)好

    谢谢 Schuyler

    1- DHCP 日志:

    # DHCP
    端口0、速度100、全双工上的链路
    BOOTP 广播1
    BOOTP 广播2.
    BOOTP 广播3.
    BOOTP 广播4.
    BOOTP 广播5.
    BOOTP 广播6.
    BOOTP 广播7.
    BOOTP 广播8.
    BOOTP 广播9.
    BOOTP 广播10.
    BOOTP 广播11.
    BOOTP 广播12.
    BOOTP 广播13.
    BOOTP 广播14.
    BOOTP 广播15.
    BOOTP 广播16.
    BOOTP 广播17.
    BOOTP 广播18.
    BOOTP 广播19.
    BOOTP 广播20.
    BOOTP 广播21.
    BOOTP 广播22.
    BOOTP 广播23.
    BOOTP 广播24.
    BOOTP 广播25.
    BOOTP 广播26.
    BOOTP 广播27.
    BOOTP 广播28.
    BOOTP 广播29

    已超过重试时间;正在重新开始


    2-是的,CPSW 正在打印我之前说过的预期速度。

    3 -不、例如、当我执行 Ping 操作时、数据线不会更改。

    4 -不、很不幸我没有 GP-EVM。

    5 -我能够引导 Linux、但网络具有相同的行为。

    此致、
    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、
    您提到100和1000Mb 操作、但我看不到10Mb 操作。 10Mb 是否起作用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我不明白为什么它会起作用。 MAC 不会在 TX 线上发送任何数据、似乎未配置。
    我没有10Mbps 网络、我不知道在10Mbps 网络上进行测试是否值得。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    您能否验证 PinMux 设置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的
    它与 GP-EVM 和 IDK 板完全相同。
    我在数据表中查看了原理图、U-Boot 和 DTS 文件中的 pinmux。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我甚至将引导配置更改为使用 EMAC 进行引导。 它也有同样的问题、TXCLK 为2.5MHz、并且数据线路上没有切换。
    我是否可以假定它不是软件问题、因为 ROM 代码具有相同的行为、并且它在硬件中?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为我发现了这个问题。
    PHY 的 RCLK 信号未连接到 MPU! 我将 RGMII 引脚多路复用器更改为 GPIO、并更改这些值以检查它们是否发生变化。 一个信号、即 RCLK、没有改变。
    问题出在焊接部门、因此在接下来的几天、我将在重新焊接后再次测试电路板。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    感谢您的更新。 让我们知道您在解决连接问题后发现的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的

    问题迎刃而解、以太网现在在 Linux 中工作、但在 U-Boot 中不工作。

    它会崩溃 U-Boot:

    ping 192.168.0.60
    端口0、速度1000、全双工上的链路
    使用 cpsw 器件
    数据中止
    PC:[<9ffbc9c6>] LR:[<9ffbcc3b>]
    重新分配 PC:[<808259c6>] LR:[<80825c3b>]
    SP:9ef92d30 IP:0000000e FP:00000002
    R10:9ef9e698 R9:9ef92ee0 R8:00000000
    R7:00000001 R6:00000000 R5:0000002a R4:9ffd70ce
    r3:14000045 r2:3200a8c0 r1:9ef92d38 r0:9ffd70ce
    标志:nZcv IRQ 关闭 FIQ 关闭模式 SVC_32
    正在重置 CPU ...

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

    编译器导致此错误。 我无意中将 GCC 7.1与 u-boot 2016.05搭配使用。
    因此、现在千兆位以太网没有问题。