0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK平台网络问题排查指南:从初始化到吞吐量,一文搞定常见故障

jf_44130326 来源:Linux1024 2026-02-02 17:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式开发中,RK瑞芯微)平台凭借高性能、高兼容性广泛应用于物联网工业控制等场景,而以太网作为核心通信接口,其稳定性直接决定了设备的可用性。但实际开发中,我们常会遇到初始化失败、网络不通、丢包等问题,排查起来耗时费力。

本文基于RK官方以太网问题排查手册,梳理了7类核心故障的现象表现、排查逻辑与实操方案,涵盖从开机初始化到吞吐量优化的全流程,帮你快速定位问题、高效解决。

wKgZPGkanJeABoZkAAEF1n7uYIE051.png

一、以太网初始化失败:开机就报错?从PHY和配置入手

现象表现

开机Log中出现明确报错,如:

No PHY found(未找到PHY芯片)

Cannot attach to PHY(无法挂载PHY

MDIO device at address 1 is missingPHY地址不匹配)

排查步骤

1.检查MDC/MDIO引脚配置

MDC/MDIO是主控与PHY通信的关键引脚,优先确认IOMUX寄存器值是否正确(需对照硬件原理图),同时用示波器测试波形:MDC时钟频率需小于2.5MHz,波形无异常抖动。

2.验证PHY供电与复位

确保PHY芯片供电正常(如3.3V/1.8V,需匹配芯片规格书);

检查Reset IO配置:必须连接主控的3.3V IO(配置成1.8V会直接报错),且复位时序需满足PHY datasheet要求(可用示波器观察上电后Reset脚是否有有效复位信号)。

1.匹配PHY地址(软件与硬件一致)

Log提示“address X missing”,说明软件配置的PHY地址与硬件实际地址不匹配:

推荐将DTSPHY地址修改为通用广播地址0,配置示例:

&mdio0 {

rgmii_phy0: phy@0 {

compatible = "ethernet-phy-ieee802.3-c22";

reg = <0x0>; // PHY地址设为0

};

};

二、DMA Initialization Failed:时钟错误是元凶

现象表现

Log中出现DMA初始化失败报错,如:

rk_gmac-dwmac fe1c0000.ethernet: Failed to reset the dma

stmmac_open: Hw setup failed

排查核心:时钟信号与配置

DMA依赖稳定的时钟,需从硬件信号软件配置双向验证:

1.检查时钟引脚与IOMUX

执行命令查看引脚复用配置,确认时钟脚未被占用:

find / -name pinmux-pins

cat pinmux-pins

用示波器测量时钟引脚:确保有正常时钟输出,频率、幅度符合硬件设计(如百兆PHY常用25MHz,千兆常用125MHz)。

1.确认时钟树与使能状态

查看时钟树信息,验证目标时钟是否使能、频率是否正确:

busybox find / -name clk_summary

cat clk_summary

检查CRU寄存器(时钟控制单元),确保时钟路径无阻断。

1.百兆PHY时钟方向配置(关键!)

若使用百兆PHY,需保证硬件方向软件配置相反:

硬件PHY设为input主控DTSGMAC配置为output(推荐);

硬件PHY设为output主控DTSGMAC配置为input

参考文档:《Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN

三、网络不通:有eth节点但ping不通?分千兆/百兆排查

前提条件

Log无报错,ifconfig能看到ethx节点(如eth0),但无法ping通同网段IP或外网。

1.若为千兆PHY:先测百兆,再查delay

步骤1:先验证百兆是否正常(缩小问题范围)

千兆不通常与信号延迟(tx/rx delay)相关,先固定百兆测试:

临时固定百兆(重启失效):

ethtool -s eth0 autoneg off speed 100 duplex full

永久固定百兆(修改DTS):在GMAC节点中加入:

max-speed = <100>; //强制百兆模式

若固定百兆后能正常link(串口打印link is up 100M/full),说明问题在千兆信号延迟。

步骤2:千兆不通校准tx/rx delay

优先使用官方工具扫回环,获取正确delay值:

echo 1000 > phy_lb_scan #扫描回环,生成delay参数

将扫描结果填入DTS,重新编译烧录(参考文档:《Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdf》)。

特殊情况:若PHY /交换机无法自动扫描,需手动微调delay值(以5为步进,范围0x0~0x60)。

2.若为百兆PHY:优先查硬件与DTS

检查时钟输出:确保25M/50M时钟正常(幅值、频率达标);

重新核对IOMUX复用:避免引脚冲突(如GMAC引脚被复用为UART);

验证电源域:PHY所在电源域(如AVDDDVDD)电压稳定;

时钟方向:同“DMA时钟错误中的百兆PHY配置规则。

四、自协商失败:无法link?查引脚、测波形、验PHY

现象表现

插网线后无link up打印,或自协商后速率异常(如千兆降为百兆但仍不通)。

排查步骤

1.逐引脚核对IO复用

pinmux-pins文件逐一对照GMAC所有引脚(如TXDRXDTXCRXC),确保无复用错误:

cat /sys/devices/platform/xxx.ethernet/pinmux-pins # xxxGMAC基地址

1.循环读取PHY寄存器,验证通信

找到PHY寄存器路径:

find / -name phy_registers

循环读取寄存器,观察值是否正常(全0xffff或全0→硬件信号问题):

while true; do

cat /sys/devices/platform/fe300000.ethernet/mdio_bus/stmmac-0/stmmac-0:01/phy_registers

done

拔插网线,检查寄存器1bit5(自协商标志位)和bit2link状态位)是否变化:无变化→PHY未正常工作。

1.验证PHY自身状态

检查PHY电源、复位、晶体(如25MHz)是否正常;

用示波器测MDI信号:正常PHY应输出链路脉冲信号,若无→MDI±接线反或PHY故障;

排查MDI相关信号问题:如链路过长、ESD电容过大(会导致信号衰减)。

五、丢包/吞吐量不达标:从delay、优化配置入手

标准速率参考

百兆以太网:吞吐量需≥90M/bps

千兆以太网:吞吐量需≥900M/bps

先测吞吐量:用iperf定位问题

测试ARM发送(PC接收)

PC端(需关闭防火墙):

iperf.exe -s -w 1M #启动服务端,窗口大小1M

ARM端:

iperf -c 192.168.50.169 -i 1 -w 1M -t 10 -l 16000 #连接PC,测试10

测试ARM接收(PC发送)

ARM端:

iperf -s -w 1M

PC端:

iperf -c 192.168.50.108 -i 1 -w 1M -t 10 -l 16000

优化方案(按优先级排序)

1.千兆不达标校准tx/rx delay

网络不通中的千兆delay校准步骤(优先自动扫回环)。

2.定频CPUDMC(提升硬件性能)

CPU和内存控制器DMC)设为性能模式,避免降频导致的处理瓶颈:

# DMC定频performance

echo performance > /sys/devices/platform/dmc/devfreq/dmc/governor

# CPU0定频performance(多核心可依次配置)

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

1.中断与队列优化(负载均衡)

中断迁移:将eth中断从CPU0移到大核(如RK3588CPU3):

#查看eth0中断号(假设为234

cat /proc/interrupts

#将中断234移到CPU316进制0x8对应CPU3

echo 8 > /proc/irq/234/smp_affinity

队列分布:将RX/TX队列分配到多核心处理:

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus

echo f > /sys/class/net/eth0/queues/tx-0/xps_cpus

1.增大协议缓冲区(UDP吞吐低适用)

#调整TCP/UDP缓冲区大小

echo 1048576 > /proc/sys/net/core/wmem_max

echo 1048576 > /proc/sys/net/core/rmem_max

echo "4096 1048576 1048576" > /proc/sys/net/ipv4/tcp_rmem

echo "4096 1048576 1048576" > /proc/sys/net/ipv4/tcp_wmem

#sysctl生效配置

sysctl -w net.core.rmem_max=2048000

sysctl -w net.core.wmem_max=2048000

1.关闭硬件校验(TCP TX异常适用)

TCP丢包但UDP正常,尝试关闭硬件checksum

#关闭eth0RX/TX硬件校验

ethtool --offload eth0 rx off tx off

#查看校验状态

ethtool --show-offload eth0

六、串口一直打印link up/down:循环报错?查时钟、EEE、网线

核心原因

PHY持续接收错误数据,导致链路反复断开/重连。

排查步骤

1.EEE模式问题合入对应补丁

若开启了EEE(节能模式),部分PHY会因兼容性问题触发link波动,需合入RK官方的EEE补丁(联系FAE获取)。

2.PHY时钟配置错误设为output模式

优先将主控配置为时钟输出模式(稳定性更高),避免PHY时钟输入异常导致的链路波动。

3.物理层问题换网线、查接触

网线水晶头接触不良是常见诱因,更换一根认证网线测试;

用示波器测MDI信号,排除信号衰减或干扰。

1.PHY寄存器验证

自协商失败中的循环读寄存器方法,观察拔插网线时寄存器值是否正常变化,若异常硬件信号故障。

七、交换机(Switch)相关问题:以RTL836x为例

适用场景

使用RTL8367RB/RTL8367S等交换机芯片,需通过RGMIIRK主控连接。

关键前提(硬件+软件)

1.硬件接线:RGMII交叉连接

主控MAC与交换机MACRGMII引脚需交叉对接:

交换机TXD [3:0] →主控RXD [3:0]

交换机RXD [3:0] →主控TXD [3:0]

交换机TXC →主控RXC,交换机TX_CTL →主控RX_CTL

1.软件配置:PHY ID设为29

RK交换机驱动默认PHY ID29,需将硬件交换机的地址ID改为29,且MDIO引脚需上拉:

#define MDC_MDIO_PHY_ID 29 /*固定PHY ID29 */

1.获取官方补丁

RK FTP下载RTL836x补丁:

FTP地址:ftp://www.rockchip.com.cn

账号:rkwifi,密码:Cng9280H8t

路径:05-补丁Patch/rtl8367_switch/rk3568_rk3588/

排查步骤

1.先验证交换机自身功能

交换机引出的2个网口接2PC(同网段静态IP),若PC间无法ping交换机本身故障:

检查交换机电源、晶体(如25MHz)、复位引脚;

核对硬件上下拉配置(参考芯片datasheet)。

1.再验证主控与交换机通信

若主控Log找不到PHY”“DMA错误,参考本文第一、二章节排查;

区分交换机型号:RTL8367RBEXT_PORT1作为RGMIIRTL8367SEXT_PORT0,需在代码中修正:

// RTL8367S需改为EXT_PORT0

ret = rtk_port_macForceLinkExt_set(EXT_PORT0, MODE_EXT_RGMII, &abi);

1.千兆不通手动调delay

交换机暂不支持自动扫回环,可尝试以下delay组合(单位:十六进制):

tx_delay

rx_delay

0x0

0x10

0x10

0x0

0x10

0x10

0x20

0x20

若上述值无效,以5为步进在0x0~0x60范围内微调,修改寄存器(以RK356x为例):

#查看delay寄存器(0xfdc60380):bit15-8=rx delaybit7-0=tx delay

io -4 0xfdc60380

#写入值(如rx=0x10tx=0x0,高16位为使能)

io -4 0xfdc60380 0xffff0010

总结:RK网络排查的核心逻辑

RK平台以太网问题排查遵循从上层到下层,从软件到硬件的原则:

1.先看开机Log:是否有初始化、DMAPHY相关报错(定位到具体章节);

2.再查功能节点:ifconfig是否有ethx,拔插网线是否有link打印;

3.分层测试:先测百兆再测千兆,先测本地再测外网,逐步缩小范围;

4.工具辅助:用示波器测时钟/ MDI信号,用iperf测吞吐量,用寄存器验证通信。

你在RK平台网络开发中还遇到过哪些疑难问题?欢迎在评论区留言讨论,一起踩坑避坑!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20625

    浏览量

    336759
  • 以太网
    +关注

    关注

    41

    文章

    6160

    浏览量

    181513
  • 瑞芯微
    +关注

    关注

    27

    文章

    841

    浏览量

    54647
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网卡吞吐量测试解决方案

    随着互联网的迅速发展,计算机日益成为人们生活中不可或缺的部分。伴随着网络业务的丰富,用户对计算机网卡的要求也越来也高。如何对计算机网卡吞吐量进行合理的测试,已越来越成为众多计算机网卡生产厂家日益关注
    发表于 12-23 11:07

    RS485通信有哪些常见故障,如何去排查

    RS485通信有哪些常见故障,如何去排查
    发表于 05-19 06:32

    防火墙术语-吞吐量

    防火墙术语-吞吐量  术语名称:吞吐量 术语解释:网络中的数据是由个个数据包组成,防火
    发表于 02-24 11:06 1684次阅读

    综合模块航空电子平台网络故障注入策略

    综合模块航空电子(IMA)平台网络通信结构复杂,在进行故障注入测试时,存在难以选取合适的测试路径及等效、无效故障注入较多的问题。根据IMA平台网络
    发表于 01-02 14:40 10次下载
    综合模块<b class='flag-5'>化</b>航空电子<b class='flag-5'>平台网络故障</b>注入策略

    如何提高无线传感器网络吞吐量

    吞吐量是无线传感器网络(Wireless Sensor Network,WSN)的项重要性能指标,它直接反映了无线传感器网络工作运行的效率,如何提高
    发表于 10-04 17:17 3278次阅读
    如何提高无线传感器<b class='flag-5'>网络</b>的<b class='flag-5'>吞吐量</b>

    直流稳压电源常见故障分析与排查

    直流稳压电源常见故障分析与排查(新型电源技术作业答案)-电子设计工程 2015年7月 直流稳压电源常见故障分析与排查
    发表于 09-29 12:16 45次下载
    直流稳压电源<b class='flag-5'>常见故障</b>分析与<b class='flag-5'>排查</b>

    debug 吞吐量的办法

    Debug 网络质量的时候,我们般会关注两个因素:延迟和吞吐量(带宽)。延迟比较好验证,Ping 下或者 mtr[1] 下就能看出来。
    的头像 发表于 08-23 09:17 1808次阅读

    debug 吞吐量的办法

    Debug 网络质量的时候,我们般会关注两个因素:延迟和吞吐量(带宽)。延迟比较好验证,Ping 下或者 mtr[1] 下就能看出来。
    的头像 发表于 09-02 09:36 1624次阅读

    GD32W51x吞吐量及场景功耗测试指南

    GD32W51x吞吐量及场景功耗测试指南
    发表于 03-01 18:42 0次下载
    GD32W51x<b class='flag-5'>吞吐量</b>及场景功耗测试<b class='flag-5'>指南</b>

    iperf吞吐量的测试流程

    iperf吞吐量测试指南
    发表于 04-03 15:40 2次下载

    兆易创新GD32W51x吞吐量及场景功耗测试指南

    兆易创新GD32W51x吞吐量及场景功耗测试指南GD32W51x吞吐量及场景功耗测试指南
    发表于 10-19 17:26 5次下载

    搞定RK平台Wi-Fi/BT调试!配置问题解决全攻略

    专用芯片,Wi-Fi/BT 的稳定运行直接影响产品体验。本文配置、编译、测试问题排查,手把手带你搞定 RK
    的头像 发表于 02-09 16:57 2556次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞定</b><b class='flag-5'>RK</b><b class='flag-5'>平台</b>Wi-Fi/BT调试!<b class='flag-5'>从</b>配置<b class='flag-5'>到</b>问题解决全攻略

    Keithley吉时利6511常见故障排查及解决方法

    Keithley吉时利6511作为款精密测量仪器,在长期使用中可能会遇到各种故障。以下是该设备常见故障排查思路及解决方法,帮助用户快速定位问题并恢复设备正常运行。    
    的头像 发表于 11-21 18:47 1273次阅读
    Keithley吉时利6511<b class='flag-5'>常见故障</b><b class='flag-5'>排查</b>及解决方法

    RK平台固件升级失败?排查流程图+脑图+实操指南搞定

    专业知识也能快速定位问题!     、核心排查流程图(难,少走弯路)           二、故障
    的头像 发表于 01-30 22:34 997次阅读
    <b class='flag-5'>RK</b><b class='flag-5'>平台</b>固件升级失败?<b class='flag-5'>排查</b>流程图+脑图+实操<b class='flag-5'>指南</b>,<b class='flag-5'>一</b>步<b class='flag-5'>搞定</b>!

    UPS电源常见故障维修全解析:排查到修复的实战指南

    ,防止事态扩大。、基础排查现象快速定位问题方向面对台“生病”的UPS,专业的工程师总会最直观的现象入手,遵循由简
    的头像 发表于 02-05 09:30 522次阅读
    UPS电源<b class='flag-5'>常见故障</b>维修全解析:<b class='flag-5'>从</b><b class='flag-5'>排查</b>到修复的实战<b class='flag-5'>指南</b>