RK3568自制底板狂丢包?教你5分钟用Delayline一键复活网口

科技时尚 2025-07-27 荣骊达人 3489

在使用飞凌嵌入式RK3568核心板搭配自制底板时,由于PCB走线与参考设计存在差异,常导致RGMII接口时序异常,进而出现网口不通或频繁丢包的情况。本文将为大家提供一套简单高效的调试方案,通过三步操作即可解决此类问题。

1、测试条件

① 硬件:飞凌嵌入式RK3568核心板;

② 系统:Linux4.19.206;

③ 底板:用户自制底板,且底板设计基本遵循飞凌提供的RK3568核心板参考原理图,但PCB走线存在差异;

④ 问题:网口无法连接或网络丢包现象严重。

wKgZO2iC4K2AFlQ0AAUqUopKMBU388.png

2、调试步骤

① 确认系统节点(以RK3568为例)

•进入目录:/sys/devices/platform/fe300000.ethernet

•确认存在以下关键节点:

phy_lb_scan rgmii_delayline phy_lb

② 扫描Delayline窗口(获取中间值)

重要提示:如果使用RTL8211E PHY 芯片,测试前务必拔掉网线!

•使用1000M (千兆)速率进行扫描:

echo1000> phy_lb_scan

•命令执行完成后,终端会输出扫描结果,包含两个关键参数:tx_delay 和 rx_delay例如:tx_delay=0x2e rx_delay=0x0f)。

•记录这两个值。

③ 测试扫描得到的Delayline值

•将步骤2中扫描得到的tx_delay和rx_delay值写入rgmii_delayline节点进行临时配置:

echo > rgmii_delayline #例如:echo0x2e0x0f > rgmii_delayline

•验证配置是否生效:

catrgmii_delayline #应显示刚写入的值

•使用phy_lb节点进行回环测试 (Loopback Test),验证TX/RX数据传输是否正常:

echo1000 > phy_lb #使用千兆速率测试

•关键要求:

必须 确保phy_lb回环测试通过 (pass)。这是后续操作的基础。如果测试失败,可能需要重新扫描或检查硬件。

④ 固化配置到设备树(DTS)并烧写固件

•在 phy_lb 测试通过后,将测试有效的 tx_delay 和 rx_delay 值写入设备树源文件(DTS)中的GMAC节点。

•找到RK3568的DTS文件中定义gmac的部分(通常在rk3568.dtsi或板级DTS文件中)。

•修改tx_delay和rx_delay属性值为测试通过的值:

&gmac { assigned-clocks = <&cru SCLK_RMII_SRC>; assigned-clock-parents = <&clkin_gmac>; clock_in_out ="input"; phy-supply = <&vcc_lan>; phy-mode ="rgmii"; pinctrl-names ="default"; pinctrl-0= <&rgmii_pins>; snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; snps,reset-active-low; snps,reset-delays-us = <0 10000 50000>; tx_delay = <0x2e>; //替换为扫描测试得到的有效tx_delay值(十六进制) rx_delay = <0x0f>;//替换为扫描测试得到的有效rx_delay值(十六进制) status ="okay"; };

•重新编译包含修改后DTS的内核或完整固件。

•将新固件烧录到 RK3568核心板。

⑤ 最终验证

•设备启动后,进行网络连接测试:

使用ping命令测试网络连通性和稳定性。

使用iperf3等工具进行网络带宽和性能测试,检查是否还存在丢包。

•一般情况下,完成以上步骤并验证通过后,网口不通或丢包问题应得到解决。

3、重要提示

① 操作风险:

修改RGMII delayline 参数是底层硬件调优。错误的参数可能导致网口完全失效。强烈建议在操作前备份原始固件和DTS文件。

② 测试必要性:

步骤3 (phy_lb回环测试)必须通过才能将参数写入 DTS。跳过此测试直接固化参数风险极高。

③ 硬件差异:

此方法主要解决因PCB走线差异引起的时序问题。如果自制底板与参考设计差异很大,或者存在其他硬件故障,此方法可能无效。

④参数值:

示例中的0x2e和0x0f仅为说明格式,必须使用phy_lb_scan扫描并结合phy_lb测试验证得到的实际有效值。

4、总结

当用RK3568自制底板遇到因PCB走线差异导致的RGMII时序跑偏问题时,使用“扫描-验证-固化”三步急救:echo扫描最佳tx/rx_delay → phy_lb回环验证 → DTS一键写入,即可让崩溃的网口原地复活。

飞凌嵌入式FET3568-C核心板基于Rockchip RK3568处理器开发设计,该处理器是Rockchip面向于AIoT和工业市场打造的一款高性能、低功耗、功能丰富的国产化应用处理器。四核64位Cortex-A55架构,主频高达2.0GHz,且内置1TOPS算力NPU,而且经过了严苛的环境温度测试、压力测试、长期稳定性运行测试,确保其工作的稳定可靠。