2026/1/16 8:53:55
网站建设
项目流程
网站关键词优化公司哪家好,怎么做网页的多开器,福州便民生活网,qplayer wordpress实战#xff1a;RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)
前言
在 RK3568 的产品定义中#xff0c;千兆以太网#xff08;Gigabit Ethernet#xff09;通常是标配。RTL8211F是Realtek#xff08;瑞昱半导体#xff09;推出的一款高度集成的千兆以太网PHY芯片…实战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 0PHYAD1 (Pin 41, RXCLK):图中 R6726 (上拉 4.7K) 焊接R6727 (下拉) NC。 - Bit 1 1PHYAD2 (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-modergmii;clock_in_outoutput;snps,reset-gpiogpio2 RK_PD3 GPIO_ACTIVE_LOW;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us020000100000;assigned-clockscru SCLK_GMAC0_RX_TX,cru SCLK_GMAC0;assigned-clock-parentscru SCLK_GMAC0_RGMII_SPEED,cru CLK_MAC0_2TOP;assigned-clock-rates0,125000000;pinctrl-namesdefault;pinctrl-0gmac0_miimgmac0_tx_bus2gmac0_rx_bus2gmac0_rgmii_clkgmac0_rgmii_bus;tx_delay0x2f;rx_delay0x2c;phy-handlergmii_phy0;statusokay;};mdio0{rgmii_phy0:phy1{compatibleethernet-phy-ieee802.3-c22;reg0x1;};};三、 调试步骤与问题排查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:seq0ttl128time1.970ms64bytes from192.168.1.28:seq1ttl128time1.126ms64bytes from192.168.1.28:seq2ttl128time1.158ms64bytes from192.168.1.28:seq3ttl128time1.049ms64bytes from192.168.1.28:seq4ttl128time1.053ms64bytes from192.168.1.28:seq5ttl128time0.997ms64bytes from192.168.1.28:seq6ttl128time1.026ms64bytes from192.168.1.28:seq7ttl128time1.139ms64bytes from192.168.1.28:seq8ttl128time1.178ms^C---192.168.1.28ping statistics---9packets transmitted,9packets received,0%packet loss round-trip min/avg/max0.997/1.188/1.970ms3.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/secRK3568 千兆网正常应该能跑到 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 的千兆网络就能稳定运行。希望这篇结合原理图的实战记录能帮到你