棋子 · 2021年12月27日

全志R329以太网网络不通或丢包严重怎么解决?

发现全志R329以太网网络不通或丢包严重怎么解决呢?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2021年12月27日
本回答来源全志R329以太网网络不通或丢包严重怎么解决?

1.【问题现象】

现象1:ifconfig eth0 up正常,但一直无法动态获取ip地址,有如下类似打印:


[   12.296892] libphy: gmac0: probed
[   12.420621] sunxi-gmac gmac0 eth0: eth0: Type(7) PHY ID 001cc916 at 0 IRQ poll (gmac0-0:00)
[   15.524572] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   23.708540] sunxi-gmac gmac0 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
root@TinaLinux:/#
root@TinaLinux:/# udhcpc -i eth0
udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover

现象2:ifconfig eth0 up正常,配置静态ip地址后,无法ping通对端设备,有如下类似打印:

root@TinaLinux:/# ifconfig eth0 192.168.1.100
root@TinaLinux:/# 
root@TinaLinux:/# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 36:C9:E3:F1:B8:05  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::34c9:e3ff:fef1:b805/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:239 dropped:0 overruns:0 frame:0
          TX packets:232 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:77384 (75.5 KiB)
          Interrupt:124 
root@TinaLinux:/# 
root@TinaLinux:/# ping 192.168.1.101
PING 192.168.1.101 (192.168.1.101): 56 data bytes

2.【问题分析】

通常原因是tx或rx通路某条通路不通,tx通路异常导致数据发不出去,同理rx通路异常导致接收不到数据。
注:

tx通路指发送数据通路,路径为mac->phy->rj45->…
rx通路指接收数据通路,路径为…->rj45->phy->mac
3.【排查步骤】

  • 配置静态ip地址,和对端设备处于同一子网内,同对端设备互相ping;
  • 开发板ping对端设备,通过ifconfig eth0命令检查对端设备能否收到数据,若能收到,则说明开发板tx通路正常,否则tx通路异常;
  • 对端设备ping开发板,通过ifconfig eth0命令检查开发板能否收到数据,若能收到,则说明开发板rx通路正常,否则rx通路异常;
  • 若tx通路异常,可调整dts gmac模块的tx-delay参数并通过"cat /sys/devices/platform/soc/gmac0/extra_tx_stats"确认是否有错误包,
  • 或者对照硬件原理图检查tx通路是否异常,如漏焊关键器件;
  • 若rx通路异常,可调整dts gmac模块的rx-delay参数并通过"cat /sys/devices/platform/soc/gmac0/extra_tx_stats"确认是否有错误包,
  • 或者对照硬件原理图检查rx通路是否异常,如漏焊关键器件;
  • 检查phy供电与GPIO耐压是否匹配;

注:

  • RGMII接口对时钟和数据的相位要求比较严格,因此通常需要调整tx-delay和rx-delay参数保证数据传输的正确性;
  • tx-delay:tx clk延迟,取值0~7,一档约536ps(皮秒);
  • rx-delay:rx clk延迟,取值0~31,一档约186ps(皮秒);

附件:FlameGraph.tar.xz

你的回答
关注数
1
收藏数
0
浏览数
3480
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息