rk3576 gmac1配置rtl8201f百兆phy
2026/7/30 15:07:55 网站建设 项目流程

一、前提背景

由于在 RK 系列的 SoC 中内置了以太网 MAC 控制器,所以只需要搭配一颗以太网 PHY 芯片,即可实现以太网卡功能。按照规范,即使是不同厂家的 PHY,仍然有一部分寄存器的定义是通用的,只要配置了这些通用的寄存器,基本上 PHY 就可以正常工作。
rk3576 支持双千兆 MAC,为了节约 GPIO,采用主网千兆,副网百兆的方式。
gmac0 走 RGMII 协议,千兆网。
gmac1 走 RMII 协议,接百兆网。

二、配置设备树

当没有晶振时,需要 SoC 给 PHY 一个 25M 的时钟用于芯片的工作,另外需要一个 50M 的主时钟,用于通信,RMII 100M 模式必须 50MHz REF_CLK(MAC 与 PHY 共用同一参考时钟)。

如果未配置25M时钟,PHY芯片probe出错,无法创建eth网络设备。
stmmac_open: Cannot attach to PHY

如果 主时钟没有配置,PHY可以发现,但是无法PING地址,dhcp也无法从路由器自动获取地址。

修改前:rgmii模式
&gmac1 {
/* Use rgmii-rxid mode to disable rx delay inside Soc */
phy-mode = “rgmii”;
clock_in_out = “output”;

snps,reset-gpio = <&gpio2 RK_PD6 GPIO_ACTIVE_LOW>; snps,reset-active-low; /* Reset time is 20ms, 100ms for rtl8211f */ snps,reset-delays-us = <0 20000 100000>; pinctrl-names = "default"; pinctrl-0 = <&eth1m0_miim &eth1m0_tx_bus2 &eth1m0_rx_bus2 &eth1m0_rgmii_clk &eth1m0_rgmii_bus >; &ethm0_clk1_25m_out>; tx_delay = <0x1a>; rx_delay = <0x26>; phy-handle = <&rgmii_phy1>; status = "disabled";

};
修改后:rmii模式
&gmac1 {
/* Use rgmii-rxid mode to disable rx delay inside Soc */

phy-mode = "rmii"; clock_in_out = "output"; snps,reset-gpio = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>; snps,reset-active-low; /* Reset time is 20ms, 100ms for rtl8211f */ snps,reset-delays-us = <0 20000 100000>; pinctrl-names = "default"; pinctrl-0 = <&eth1m0_miim &eth1m0_tx_bus2 &eth1m0_rx_bus2 &eth1m0_mclk &ethm0_clk1_25m_out>; phy-handle = <&rgmii_phy1>; status = "okay";

};
至此,gmac1 百兆网phy正常工作了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询