**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
```