RK3566 RGMII时序调试:从扫描窗口到DTS固化的实战指南

张开发
2026/4/17 5:21:19 15 分钟阅读

分享文章

RK3566 RGMII时序调试:从扫描窗口到DTS固化的实战指南
1. 理解RGMII时序调试的核心挑战当你第一次在RK3566平台上调试RTL8211F这类PHY芯片时最让人头疼的往往是网口时通时断、传输速率不稳定的问题。这就像两个人用对讲机通话如果说话节奏对不上要么抢话要么漏听。RGMII接口的tx_delay和rx_delay参数本质上就是在调整数据发送和接收的节奏感。我遇到过最典型的案例是硬件设计完全按照参考电路但千兆以太网只能跑到百兆速度。用示波器看波形发现数据眼图已经出现明显畸变。这时候就需要通过软件调整时序参数来补偿硬件上的信号完整性损失。RK3566提供的delayline扫描功能相当于给你一个自动化工具可以系统性地寻找最佳时序窗口。2. 硬件准备阶段的三个关键检查点在开始软件调试前有几个硬件细节必须确认。去年有个项目让我记忆犹新客户反馈PHY芯片死活不工作最后发现是硬件工程师把C15电容焊上了导致REGOUT电压被拉低。必须检查的硬件项目PHY地址配置RTL8211F的PHY_ADDR引脚决定了设备地址必须与DTS中的phy-handle对应时钟方向常见的有PHY→GMAC和GMAC→PHY两种模式我们的场景需要设置为input模式电源轨检查特别是REGOUT引脚电压RTL8211F要求1.0-1.1V范围建议先用万用表测量关键电压再用示波器观察125MHz时钟信号质量。曾经有个案例是因为时钟信号过冲导致PHY工作异常后来通过调整端接电阻解决了问题。3. 扫描delay窗口的实战技巧进入系统后先别急着扫描。我发现很多人会忽略一个重要步骤拔掉网线。对于RTL8211F这类PHY物理连接会影响自环测试结果。扫描命令看起来简单echo 1000 phy_lb_scan但有几个隐藏细节路径可能因芯片型号不同而变化建议先到/sys/devices/platform/下ls查看数值1000表示千兆模式如果要测百兆就写100扫描过程约30秒期间不要操作设备扫描结果中那些O符号组成的图案其实是在可视化时序裕量。我习惯把输出保存到文件慢慢分析echo 1000 phy_lb_scan 21 | tee scan.log4. 解读扫描结果的黄金法则面对密密麻麻的O符号新手可能会懵。这里分享我的解读方法优质窗口的特征连续多个delay值都有完整的一行O表示无错误中间区域的稳定区间越大越好最佳值通常取稳定区间的中值比如在原始日志中RX(0x2a): O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO RX(0x48): OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0x2a和0x48都是不错的候选值。但要注意tx和rx的optimal值可能不同需要组合测试。5. 参数验证的完整流程找到候选值后千万别直接写DTS我建议的验证步骤动态写入测试echo 0x48 0x2a rgmii_delayline启动环回测试echo 1000 phy_lb检查内核日志是否出现PHY loopback: PASS实际网络测试ping -c 1000 192.168.1.1 iperf3 -c 192.168.1.1曾经有个项目在这里踩坑环回测试通过但实际传输大文件会丢包。后来发现是tx_delay需要微调0x02才彻底稳定。6. DTS配置的注意事项当确认参数可靠后就可以固化到DTS了。有几个易错点需要特别注意gmac节点配置要点phy-mode必须为rgmiiclock_in_out要与硬件设计一致reset-gpio的active-low属性要正确reset-delays-us需要根据PHY型号调整特别提醒修改DTS后一定要重新编译内核并烧录完整固件。我见过有人只更新dtb导致配置不生效的情况。7. 高级调试技巧当标准流程走不通时可以尝试这些方法示波器测量法直接观察TXD/RXD信号与时钟边沿的关系参数微调策略以扫描结果为基准上下浮动2-3个值测试温度影响测试在高低温环境下验证参数稳定性信号完整性检查用TDR测量PCB走线阻抗有个军工项目要求-40℃~85℃工作我们花了两周时间在不同温度下反复测试最终确定了最保守的参数值。8. 常见问题排查指南问题1扫描无输出检查PHY是否正常上电确认GMAC驱动加载正确验证设备树路径是否匹配问题2环回测试失败确认网线已断开检查PHY芯片型号支持环回模式尝试降低速率测试(如改为100M)问题3实际传输不稳定检查PCB走线长度是否匹配测量电源纹波是否超标考虑添加磁珠改善信号质量去年有个项目遇到间歇性断连最后发现是电源芯片负载能力不足PHY在高速传输时电压跌落导致的。

更多文章