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/processor-SDK-AM335X:Linux 中的以太网数据包丢弃、AM335x 上具有 Broadcom PHY BCM54210

Guru**** 2537380 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614042/linux-processor-sdk-am335x-ethernet-packet-drops-in-linux-with-broadcom-phy-bcm54210-on-am335x

器件型号:PROCESSOR-SDK-AM335X
主题中讨论的其他器件:AM3352

工具/软件:Linux

您好!

我们的板基于 AM335x CPU 和 TI AM335x SDK (ti-processor-sdk-linux-AM335x-evm-03.01.00.06)。 我们有两个 Broadcom BCM54210 PHY 使用 RGMII 接口通过 CPSW EMAC 连接到 CPU。 这两个千兆位以太网接口具有 SFP 连接器。在正确地址启动期间、Linux 会检测到驱动程序和这两个接口、并且我们能够通过 RGMII、读写寄存器与 PHY 进行通信。 在 Linux 中、两个以太网接口都正常运行、IP 地址也被分配。 但我们看到数据包间歇性下降速率为30%-70%、带宽非常低、如150Mbps。 我们已经测试了正常的 ping 数据包和数据包、这些数据包的大小略高于 MTU、并且我们始终可以看到这些数据包的下降。

我们尚未在 u-boot 中初始化这些接口、因为我们未在 u-boot 中使用它们。 我们有另一个在 u-boot 中初始化的 USB 以太网接口、并使用此接口加载映像。

我们已在 Linux cpsw 和 phy 驱动程序中进行了必要的修改并将其初始化。 它们的 PHY 被正确检测到。

[1.064637] cpsw 4a100000.以太网:检测到的 MACID = 00:17:47:xx:xx:xx:xx
[1.142871] net eth0:Phy found:id is:0x600d8595
[1.154235] cpsw 4a100000.以太网:cpsw:检测到的 MACID = 00:17:47:xx:xx:xx:xx
[1.232865] net eth1: Phy found : id is : 0x600d8595
[1.243860] net eth0:cpsw:初始化的器件版本0x0019010c (regs 0x4a100000、IRQ 176)
[1.388922] cputidle: enable-method 属性'ti、am3352'找到操作
[2.276615] smsc75xx 1-1:1.0 eth2:在 usb-musb-hdrc.0.auto-1上注册'sc75xx'、smsc75xx USB 2.0千兆位以太网、00:17:47:7f:FD:F1
[14.327296] IPv6:ADDRCONF (NETDEV_UP):ETH2:链路未就绪
[14.419670] net eth0:正在初始化 cpsw 版本1.12 (0)
[14.439977] net eth0:初始化 cpsw ale 版本1.4
[14.459955]净 eth0:ALE 表大小1024
[14.519612] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
[17.904227] IPv6:ADDRCONF (NETDEV_CHANGE):ETH2:链路就绪
[17.910537] smsc75xx 1-1:1.0 eth2:链路建立、1000Mbps、全双工、LPA 0xC1E1
[48.143088] cpsw 4a100000.以太网 eth0:链路向上- 1Gbps/全-流控制关闭
[48.149557] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
[48.233403] cpsw 4a100000.以太网 eth1:链路向上- 1Gbps/全-流控制关闭

在 Linux 中、我们可以执行 ping 操作、但会出现间歇性的丢包。

# ping 10.1.x.x
Ping 10.1.x.x (10.1.x.x) 56 (84)字节数据。
10.1.x.x 中的64字节:icmp_seq=1 TTL=64 time=1.03ms
10.1.x.x 中的64字节:icmp_seq=2 TTL=64 time=1.22ms
10.1.x.x 中的64字节:icmp_seq=3 TTL=64 time=1.04ms

^C
-- 10.1.x.x ping statistics --
发送1036个数据包、接收16个数据包、98%数据包丢失、时间1035018ms
RTT 最小值/平均值/最大值/mdev = 0.713/1.152/3.063/0.511ms

甚至性能也很差-

#./ipperf3 -c 10.1.x.x
连接到主机10.1.x.x、端口5201
[4]本地10.1.x.x 端口48974连接至10.1.x.x 端口5201
[ ID]间隔传输带宽 RETR Cwnd
[4] 0.00-1.00秒10.6 MB 88.9 MB 每秒36 49.5 KB
[4] 1.00-2.00秒10.4 MB 87.0 MB 每秒53 33.9 KB
[4] 2.00-3.00秒10.2 MB 85.4 MB 每秒63 43.8 KB
[4] 3.00-4.08秒11.0 MB 85.2兆位/秒24 43.8千字节
[4] 4.08-5.00秒8.79 MB 80.6 Mbit/s 49 17.0 KB
[4] 5.00-6.00秒9.78 MB 81.8 MB /秒59 24.0 KB
[4] 6.00-7.00秒9.91 MB 83.4 MB /秒71 55.1 KB
[4] 7.00-8.00秒9.82 MB 82.4 MB 每秒49 26.9 KB
[4] 8.00-9.01秒9.94 MB 83.0 MB /秒97 31.1 KB
[4] 9.01-10.06秒10.3 MB 81.8 Mbit/s 41 5.66 KB
------- ------- ------- ------- -------
[ ID]间隔传输带宽可再生
[4] 0.00-10.06秒101 MB 84.0 Mbit/s 542发送器
[4] 0.00-10.06秒101 MB 83.8兆位/秒

请在此处提供任何要点。 在 CPSW 或 PHY 端、是否缺少任何特定的配置或初始化?