ath79: fix packetloss on some WLR-7100
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 31 Aug 2023 19:10:23 +0000 (21:10 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sun, 17 Sep 2023 14:39:10 +0000 (16:39 +0200)
On some WLR-7100 routers, significant packet loss was observed. This is
fixed by configuring a delay on the GMAC0 RXD and RXDV lines.

The values used in this commit are copied from the values used by the
stock firmare (based on register dumping).

Out of four test routers, the problem was consistently observed on two.
It is unclear what the relevant difference is exactly (the two working
routers were v1 001 with AR1022 and v1 002 with AR9342, the two broken
routers were both v1 002 with AR1022). All PCB routing also seems
identical, so maybe there is some stray capacitance on some of these
that adds just enough delay or so...

With this change, the packet loss disappears on the broken routers,
without introducing new packet loss on the previously working routers.

Note that the PHY *also* has delays enabled (through
`qca,ar8327-initvals`) on both RX and TX lines, but apparently that is
not enough, or it is not effective (registers have been verified to be
written).

For detailed discussion of this issue and debug history, see
https://forum.openwrt.org/t/sitecom-wlr-7100-development-progress/79641

Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts

index d008dd5ec86e08af5b7dea9af341b2ad5500d13e..e2ccef105d6fb6e3815a120f4924f18db0d73042 100644 (file)
@@ -65,6 +65,8 @@
        gmac-config {
                device = <&gmac>;
                rgmii-gmac0 = <1>;
+               rxdv-delay = <3>;
+               rxd-delay = <3>;
        };
 };