news 2026/5/1 8:34:49

RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)

实战:RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)

前言

在 RK3568 的产品定义中,千兆以太网(Gigabit Ethernet)通常是标配。‌RTL8211F是Realtek(瑞昱半导体)推出的一款高度集成的千兆以太网PHY芯片‌,支持10/100/1000Mbps自适应传输,符合IEEE 802.3标准,广泛应用于IoT设备、工业控制及消费电子领域。‌‌Realtek 的 RTL8211F 因其性价比高、兼容性好,是目前市面上最常见的 PHY 芯片之一。
本文将结合实际的硬件原理图,详细记录如何在 RK3568 (Android 14、Linux6.1) 平台上配置 RGMII 接口的千兆网卡,重点解决 PHY 地址识别 和 网络丢包(时序延迟) 两大难题。

一、硬件原理图深度解析

在写代码之前,必须先看懂原理图。以下是根据调试板原理图提取的关键信息:

1.1 接口模式 (Interface)

从原理图中可以看到 GMAC0_TXD0~3和 GMAC0_RXD0~3 以及 TXCLK、RXCLK,这表明使用的是RGMII (Reduced Gigabit Media Independent Interface)模式,而不是 RMII。
关键点:RK3568 内部集成了 GMAC 控制器,RTL8211F 充当 PHY,两者通过 RGMII 总线连接。

1.2 PHY 地址配置 (Strap Pins)

驱动能否找到网卡,全靠这个地址。原理图右侧的“PHY Address Config”表格非常关键。

RTL8211F 的设备地址由PHYAD[2:0]决定,上电瞬间通过锁存引脚电平来配置:
PHYAD0 (Pin 40, RXD3):图中 R6725 (下拉 4.7K) 焊接,R6724 (上拉) NC。 -> Bit 0 = 0
PHYAD1 (Pin 41, RXCLK):图中 R6726 (上拉 4.7K) 焊接,R6727 (下拉) NC。 -> Bit 1 = 1
PHYAD2 (Pin 42, RXDV):图中显示配置为 0 (参考表格 default)。

结论:该板子的 PHY 地址为二进制 010 (原理图标注的 3’b001,是错误的值,需以实测为准,通常原理图备注 “Default 1” 则地址为 0x1)。
注意:如果驱动报 No PHY found,请尝试地址 1 或 0。

1.3 时序延迟 (TX/RX Delay)

这是千兆网卡调试最“玄学”的地方。RGMII 协议要求时钟线 (CLK) 和数据线 (Data) 之间有 2ns 的延时以保证数据采样正确。
原理图中特意标注了:
Pull-up for additional 2ns delay to RXC (R6728)
Pull-up for additional 2ns delay to TXC (R6730)
这意味着硬件上可能已经开启了延迟。但在 RK3568 软件配置中,为了保险起见,我们通常使用 rgmii-id 模式,让 PHY 芯片在内部再次确认并自动处理这个延迟。

1.4 复位与中断

Reset:GMAC0_RSTn (Pin 30),低电平复位。
Interrupt:GMAC0_INT (Pin 32),用于连接状态变化通知(插拔网线)。

二、 内核设备树驱动配置 (Kernel Config)

打开 kernel-6.1/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi,配置 GMAC0 节点。

&gmac0{phy-mode="rgmii";clock_in_out="output";snps,reset-gpio=<&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us=<020000100000>;assigned-clocks=<&cru SCLK_GMAC0_RX_TX>,<&cru SCLK_GMAC0>;assigned-clock-parents=<&cru SCLK_GMAC0_RGMII_SPEED>,<&cru CLK_MAC0_2TOP>;assigned-clock-rates=<0>,<125000000>;pinctrl-names="default";pinctrl-0=<&gmac0_miim&gmac0_tx_bus2&gmac0_rx_bus2&gmac0_rgmii_clk&gmac0_rgmii_bus>;tx_delay=<0x2f>;rx_delay=<0x2c>;phy-handle=<&rgmii_phy0>;status="okay";};&mdio0{rgmii_phy0:phy@1{compatible="ethernet-phy-ieee802.3-c22";reg=<0x1>;};};

三、 调试步骤与问题排查

3.1 确认 PHY 是否被识别

系统启动后,查看日志:

dmesg|grep-i eth dmesg|grep-i rtl

成功标志:看到类似 RTL8211F Gigabit Ethernet 以及 Link is Up 的日志。
失败标志:No PHY found 或 Generic PHY(说明驱动没匹配上,或地址错了)。

3.2 检查网络连接

rk3568_t:/$ ifconfig eth0 up eth0 Link encap:Ethernet HWaddr ce:7e:e7:30:dd:5a Driver rk_gmac-dwmac UP BROADCAST MULTICAST MTU:1500Metric:1RX packets:0errors:0dropped:0overruns:0frame:0TX packets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:0TX bytes:0Interrupt:43rk3568_t:/$ ifconfig eth0192.168.1.100rk3568_t:/$ ping192.168.1.28PING192.168.1.28(192.168.1.28):56data bytes64bytes from192.168.1.28:seq=0ttl=128time=1.970ms64bytes from192.168.1.28:seq=1ttl=128time=1.126ms64bytes from192.168.1.28:seq=2ttl=128time=1.158ms64bytes from192.168.1.28:seq=3ttl=128time=1.049ms64bytes from192.168.1.28:seq=4ttl=128time=1.053ms64bytes from192.168.1.28:seq=5ttl=128time=0.997ms64bytes from192.168.1.28:seq=6ttl=128time=1.026ms64bytes from192.168.1.28:seq=7ttl=128time=1.139ms64bytes from192.168.1.28:seq=8ttl=128time=1.178ms^C---192.168.1.28ping statistics---9packets transmitted,9packets received,0%packet loss round-trip min/avg/max=0.997/1.188/1.970ms

3.3 性能与丢包测试 (关键)

能 Ping 通不代表网卡正常。RGMII 时序不对会导致大量丢包或速率跑不满。
查看丢包统计:

ifconfig eth0 # 关注 RX packets 下面的 errors 和 dropped 计数

压测:
使用 iperf3 进行内网测速。

iperf-c192.168.1.28------------------------------------------------------------Client connecting to192.168.1.28,TCP port5001TCP window size:162KByte(default)------------------------------------------------------------[3]local192.168.1.100port40236connected with192.168.1.28port5001[ID]Interval Transfer Bandwidth[3]0.0-10.0sec114MBytes989.4Mbits/sec

RK3568 千兆网正常应该能跑到 900Mbps+。如果只有 10Mbps 或者几百 Mbps 且波动大,说明 TX/RX Delay 不对。

3.4 调整 Delay (如果丢包)

如果 rgmii-id 丢包,可以尝试修改 DTS 中的 tx_delay 和 rx_delay 值。
范围:0x00 ~ 0x7F
经验值:RK3568 + RTL8211F 常用搭配为 tx_delay = 0x2f / rx_delay = 0x2x (仅供参考,需以实测为准)。

总结

调试 RTL8211F 的核心在于:确认地址(看电阻贴片情况)和 搞定延时(配置 rgmii-id 或微调 delay 值)。一旦这两点对上了,RK3568 的千兆网络就能稳定运行。

希望这篇结合原理图的实战记录能帮到你!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 16:22:08

水资源管理平台:水质预测模型借助TensorRT持续推演

水资源管理平台&#xff1a;水质预测模型借助TensorRT持续推演 在城市水务系统日益复杂的今天&#xff0c;一次突发的工业排污事件可能在数小时内污染整条河流。传统的水质监测依赖人工采样和实验室分析&#xff0c;等结果出来时&#xff0c;污染早已扩散。这种“事后响应”模式…

作者头像 李华
网站建设 2026/4/29 15:14:43

智能家居控制中枢:本地推理保护隐私同时保证响应速度

智能家居控制中枢&#xff1a;本地推理保护隐私同时保证响应速度 在智能家居日益普及的今天&#xff0c;用户对“智能”的期待早已超越了简单的远程开关控制。真正的智慧生活&#xff0c;是系统能听懂你的指令、识别家人的面孔、感知异常行为并即时响应——这一切的背后&#x…

作者头像 李华
网站建设 2026/4/18 14:39:12

如何在 2024 年脱颖而出,成为一名数据科学家

原文&#xff1a;towardsdatascience.com/how-to-stand-out-as-a-data-scientist-in-2024-2d893fb4a6bb?sourcecollection_archive---------4-----------------------#2024-05-09 https://towardsdatascience.medium.com/?sourcepost_page---byline--2d893fb4a6bb-----------…

作者头像 李华
网站建设 2026/5/1 1:16:15

JLink下载与STM32驱动适配实战案例

JLink下载与STM32驱动适配实战&#xff1a;从连不上到秒速烧录的全链路解析你有没有遇到过这样的场景&#xff1f;凌晨两点&#xff0c;项目临近交付&#xff0c;你信心满满地打开Keil准备烧录最后一版固件——结果点击“Download”后弹出一行红字&#xff1a;“No target conn…

作者头像 李华
网站建设 2026/4/30 23:15:32

大数据存储革命:新一代数据立方体技术展望

大数据存储革命&#xff1a;新一代数据立方体技术展望 一、引入&#xff1a;当大数据变成“乱堆的乐高”——企业的共同痛点 凌晨3点&#xff0c;某头部电商的数据分析总监王磊盯着电脑屏幕叹气。就在1小时前&#xff0c;运营团队紧急要求“查华东地区25-30岁女性用户在618大促…

作者头像 李华