Appearance
RK3568 · DesignWare GMAC
1G×2网口速率
RGMIIPHY 接口
TSO硬件卸载
PTP硬件时间戳
板卡配置
不同板卡的差异主要在时钟方向、TX/RX delay 值和 PHY 复位 GPIO,其余初始化参数一致:
稳定
PHY 接口
rgmii时钟方向output(SoC 驱动)
GMAC0 delay
tx=0x3c / rx=0x2fGMAC1 delay
tx=0x4f / rx=0x26PHY 复位
gpio2 PD3 / gpio2 PD1特殊说明
- clock_in_out = output,时钟由 SoC 内部 PLL(CLK_MAC_2TOP)驱动,125 MHz
- PHY 复位时序:延迟 0 / 20ms / 100ms
网卡设备树配置
&gmac0 {
phy-mode = "rgmii";
clock_in_out = "output";
tx_delay = <0x3c>;
rx_delay = <0x2f>;
snps,reset-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
snps,reset-delays-us = <0 20000 100000>;
assigned-clock-parents = <...SCLK_GMAC0_RGMII_SPEED>, <...CLK_MAC0_2TOP>;
assigned-clock-rates = <0>, <125000000>;
};
&gmac1 {
phy-mode = "rgmii";
clock_in_out = "output";
tx_delay = <0x4f>;
rx_delay = <0x26>;
snps,reset-gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
snps,reset-delays-us = <0 20000 100000>;
assigned-clock-parents = <...SCLK_GMAC1_RGMII_SPEED>, <...CLK_MAC1_2TOP>;
assigned-clock-rates = <0>, <125000000>;
};SoC 级说明
网口映射
| 网口 | 控制器基地址 | IRQ |
|---|---|---|
| eth0 (GMAC0) | 0xFE2A0000 | 27 |
| eth1 (GMAC1) | 0xFE010000 | 32 |
时钟配置
RK3568 GMAC 支持两种时钟模式:
- output 模式(
clock_in_out = "output"):时钟由 SoC 内部 PLL(CLK_MAC_2TOP)产生并驱动至 PHY,典型值 125 MHz; - input 模式(
clock_in_out = "input"):时钟由外部 PHY 或晶振提供,SoC 从gmac_clkin接收。部分板卡还通过CLK_MAC_OUT(25 MHz)向 PHY 提供参考时钟。
RGMII 延迟校准
RK3568 通过 GRF 寄存器控制 TX/RX 内部延迟,不同板卡因 PCB 走线不同而使用不同的 delay 值。错误的 delay 配置会导致链路不稳定或无法建立,调试时可逐步调整。
已知问题
已知PHY 自协商在 100M 半双工模式下偶发超时,建议业务侧固定速率为 1000M 全双工