[PATCH] arm64: dts: rockchip: Change ethernet TXD timing delay value

Heiko Stübner heiko at sntech.de
Tue Aug 19 11:44:26 PDT 2025


Am Dienstag, 19. August 2025, 18:03:47 Mitteleuropäische Sommerzeit schrieb Andrew Lunn:
> On Tue, Aug 19, 2025 at 01:50:17PM +0900, Dongjin Kim wrote:
> > Very poor network performance is observed on the ODROID-M1 Board
> > (REV 1.0 20220613) when running iperf3 (under 200Mbits/sec), and
> > this problem can be resolved after changing the value of TXD
> > timing to 0x35 from 0x4f.
> 
> How did you decide on 0x35?

just because I accidentially stumbled over that recently, Rockchip has
some scanning functionality in their vendor-kernel to get possible
delay values for a board.

Described in a document called "Rockchip GMAC RGMII Delayline Guide" [0]
and one code location is for example the armbian tree [1]

At least that is one possible source of per-board delay values :-)


Heiko


[0] https://lo01.g77k.com/aeb/docs/en/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_EN.pdf
(random internet source Google found me)
[1] https://github.com/armbian/linux-rockchip/blob/rk-6.1-rkr5.1/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c


> 
> ~/linux/arch/arm64$ grep -hr "tx_delay = " | sort | uniq -c
>       4 	tx_delay = <0x10>;
>       1 	tx_delay = <0x1a>;
>       1 	tx_delay = <0x21>;
>       2 	tx_delay = <0x22>;
>       4 	tx_delay = <0x24>;
>       2 	tx_delay = <0x26>;
>      14 	tx_delay = <0x28>;
>       1 	tx_delay = <0x2a>;
>       6 	tx_delay = <0x30>;
>       1 	tx_delay = <0x3a>;
>       3 	tx_delay = <0x3c>;
>       2 	tx_delay = <0x42>;
>       5 	tx_delay = <0x43>;
>       2 	tx_delay = <0x44>;
>       1 	tx_delay = <0x46>;
>       6 	tx_delay = <0x4f>;
> 
> The numbers are all over the place, but it is clear that 0x28 is the
> most popular for some reason. But since this delay values are magic,
> i've no idea why.
> 
>      Andrew
> 







More information about the linux-arm-kernel mailing list