Jump to content

N 42

Validating
  • Posts

    1
  • Joined

  • Last visited

Everything posted by N 42

  1. **Board:** NanoPi M5 (RK3576) **Kernel:** 6.18.33-current-rockchip64 (#1 SMP PREEMPT Sat May 23 11:07:21 UTC 2026) **Armbian build:** v26.8.0-trunk.53 ## Problem Gigabit RX is completely non-functional on `end0` (GMAC0, `ethernet@2a220000`). The interface comes up at 1000Mb/s, TX works, but no packets are ever received. DHCP never gets an OFFER, `ethtool -S end0` shows RX counters stuck at zero. Forcing 100Mb/s via `ethtool -s end0 speed 100 duplex full autoneg off` works around the issue — RX starts working immediately. ## Root cause The DTB sets `phy-mode = "rgmii-id"` together with `rx_delay = <0x3f>`. The RTL8211F PHY in `-id` mode already applies its own internal RX delay, and the driver applies an additional hardware delay on top of it. The double delay breaks gigabit RX entirely. ``` # /boot/dtb/rockchip/rk3576-nanopi-m5.dtb — broken phy-mode = "rgmii-id"; tx_delay = <0x21>; rx_delay = <0x3f>; # <-- causes double RX delay ``` ## Fix Change `phy-mode` to `rgmii-rxid` (PHY applies RX delay internally) and remove `rx_delay`. This applies to both GMAC0 (`ethernet@2a220000`) and GMAC1 (`ethernet@2a230000`). ``` # Fixed phy-mode = "rgmii-rxid"; tx_delay = <0x21>; # rx_delay removed ``` After applying this fix gigabit works correctly at 1000Mb/s with full RX functionality. ## Workaround ```bash ethtool -s end0 speed 100 duplex full autoneg off ``` Or patch the DTB manually: ```bash dtc -I dtb -O dts -o /tmp/nanopi.dts /boot/dtb/rockchip/rk3576-nanopi-m5.dtb sed -i 's/phy-mode = "rgmii-id"/phy-mode = "rgmii-rxid"/g' /tmp/nanopi.dts sed -i '/rx_delay/d' /tmp/nanopi.dts dtc -I dts -O dtb -o /boot/dtb/rockchip/rk3576-nanopi-m5.dtb /tmp/nanopi.dts reboot ```
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines