xavier nx 平台 EQOS LAN端口连接异常问题调试1

free-jdx 2021-07-09 15:17:28 6217
1. 前言

正在为JetsonNano和XavierNX开发通用定制板。
只有在XavierNX环境下,Eth端口在启动时没有Link Up。

JetsonNano和XavierNX之间唯一的区别是CPU模块,
从CPU模块插座到RJ45连接器的电路完全相同。

当未执行Link Up时,dmesg不会输出以下日志

[ 34.616304] eqos 2490000.ether_qos eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 34.618148] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

再现频率是1/110
LAN端口的speed LED也不亮,我想这意味着自动协商不能正常工作

Link Up事件似乎没有从内核phy_state_machine()中出现
除了LED的GPIO控制外,没有对EQOS驱动做任何更改

2. 对比参考设计图

根据《产品设计指南》
JetsonNano和xavierx在一些电路设计上的限制没有区别

但实际上,只有XavierNX环境有问题。
电路设计符合设计指南的要求

3. 使用XavierNX模块测试

在我们的环境中已经确认
问题不仅发生在启动,
而且还发生在启动后EQOS IF连续关闭/打开时

while:
do
ifconfig eth1 down
sleep 5
ifconfig eth1 up
sleep 5
ping -I eth1 $SERVERIP -c 4
done

・PHY_AN ok

[ 1359.006360] phy_state_machine() PHY_UP
[ 1359.007015] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 1361.769380] phy_state_machine() PHY_AN
[ 1361.771345] eqos_adjust_link() set SPEED_1000
[ 1361.771699] eqos 2490000.ether_qos eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 1361.772487] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

PHY_AN 未启动

[ 3331.328016] phy_state_machine() PHY_UP
[ 3331.328646] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

设置了“CONFIG_EQOS_DISABLE_EEE=y”,
并在上面的ifconfig continuous down/up环境中评估它

连续3天上下15128次,PHY_AN不断发生
在那之后,我再次禁用了“CONFIG_EQOS_DISABLE_EEE”,并重复向下/向上2700次12小时,PHY_AN没有被升起一次

4. 使用XavierNX EVK板测

购买了NVIDIA JETSON XAVIER NX开发工具包
并在板子启动和自定义板子启动期间进行了连接测试。

结果,EQOS (RTL8211F)在启动时没有连接的问题
连续重启测试90分钟后,在EVK (JetPack 4.4.1:L4T 32.4.4)上
复现频率约为1/107
复现过程如下

1. 从https://developer.nvidia.com/jetpack-sdk-441-archive下载NX DEVELOPER KIT的SD卡镜像
2. 提取jetson-nx-developer-kit-sd-card-image-441并编写sd-blob.img到micro SDCard
3.使用SD Boot, Setup和login引导NX DEVELOPER KIT
4. 从GUI关闭Wifi和蓝牙。
5. 从界面中将eth0 IPv4设置为10.0.0.77/8
6. HostPC通过Gbit Ether HUB连接到EVK,如下所示

NX DEVELOPER KIT <=> NETGEAR:GS-105E <=> HostPC
10.0.0.77/8                              10.0.0.36/8

7. 部署以下shell脚本、服务并设置自动化测试
/root/pe_test.sh
/lib/systemd/system/pe_test.service
# chmod a+x /root/pe_test.sh
# systemctl启用pe_test

8. 在USB插槽中插入一个USB记忆棒,以防有意中断测试
当USB闪存驱动器被拔出或问题重现时,重新启动测试停止

9. 从UART控制台重新启动并开始持续测试

复现后的情况如下

[/root/pe_log/petest_log_20210603_151442.txt]
...
[2] EQOS [NG] date=20210603_151452
arg num=3
ITEM=EQOS
COMMAND=dmesg | grep eqos
EXPECTED=eqos 2490000.ether_qos eth0: Link is Up
RESULT=[    4.413594] eqos 2490000.ether_qos: Setting local MAC: 48 b0 2d 

Link is Up事件不会从内核引发,IP也不会被分配
phy_state_machine()中可能没有引发PHY_AN

root@contec-desktop:~# ifconfig 
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 48:b0:2d:3d:78:86  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 37  

root@contec-desktop:~# dmesg | grep eqos
[    4.413594] eqos 2490000.ether_qos: Setting local MAC: 48 b0 2d 3d 78 86

mii-tool中链路正常,ethtool中为link detected: no

root@contec-desktop:~# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok

root@contec-desktop:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Link detected: no

LAN端口led灯都点亮

Left:  Lights up Green
Right: Lights up Orange (sometimes blink)

这个问题不仅出现在我们的CustomBoard中,也出现在EVK中。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 92 2 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区