[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