Known issueEthernet

Rockchip Ethernet Link Up but No Traffic (RGMII tx_delay / rx_delay)

Link is Up - 1Gbps/Full but no DHCP / no traffic

The PHY negotiates a gigabit link, but packets are corrupted or dropped, so DHCP fails. This is the classic RGMII clock-to-data delay mismatch.

Applies to: RK3588 RK3588S RK3576 RK3568 RK3566 RK3399 RK3328 RK3288

Symptoms

  • "Link is Up - 1Gbps/Full" in dmesg, but no DHCP lease
  • Works at 100 Mbps, fails at 1000 Mbps
  • Rising rx_crc_errors in ethtool -S

Common causes

  • RGMII delay added twice (PHY internal + MAC delay line) or not at all
  • Wrong phy-mode (rgmii vs rgmii-id / rgmii-rxid / rgmii-txid)
  • Delay values copied from a different board layout

How to fix it

  1. Confirm it is timing
    ethtool -s eth0 speed 100 duplex full autoneg off   # works? → timing
    ethtool -S eth0 | grep -iE 'crc|err'
  2. Pick one owner for each delay
    /* MAC adds delays */
    &gmac0 { phy-mode = "rgmii"; tx_delay = <0x43>; rx_delay = <0x33>; };
    
    /* PHY adds both delays */
    &gmac0 { phy-mode = "rgmii-id"; tx_delay = <0x0>; rx_delay = <0x0>; };
  3. Tune on your PCB

    Vendor kernels include an RGMII loopback delay-scan helper in the GMAC sysfs node (see Rockchip's GMAC developer guide). Use the centre of the passing window.

Go deeper

FAQ

What does "Link is Up - 1Gbps/Full but no DHCP / no traffic" mean?

The PHY negotiates a gigabit link, but packets are corrupted or dropped, so DHCP fails. This is the classic RGMII clock-to-data delay mismatch.

What causes "Link is Up - 1Gbps/Full but no DHCP / no traffic"?

RGMII delay added twice (PHY internal + MAC delay line) or not at all; Wrong phy-mode (rgmii vs rgmii-id / rgmii-rxid / rgmii-txid); Delay values copied from a different board layout.

How do I fix "Link is Up - 1Gbps/Full but no DHCP / no traffic"?

1. Confirm it is timing 2. Pick one owner for each delay 3. Tune on your PCB: Vendor kernels include an RGMII loopback delay-scan helper in the GMAC sysfs node (see Rockchip's GMAC developer guide). Use the centre of the passing window.

Related issues

Building a Rockchip-based product?

From hardware design to Linux, Android and AI integration, get engineering support for your Rockchip project.