]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ath79: fix Ethernet auto-negotiation on Ruckus ZoneFlex 7025 24022/head
authorDhimant Thanki <dhimant.thanki@gmail.com>
Wed, 1 Jul 2026 13:12:55 +0000 (18:42 +0530)
committerRobert Marko <robert.marko@sartura.hr>
Wed, 1 Jul 2026 16:58:36 +0000 (18:58 +0200)
On the ZoneFlex 7025 the uplink port (eth0) is connected to PHY 4 of
the AR7240 built-in switch. This PHY erroneously advertises
1000baseT/Full capability, even though the AR7240 built-in switch only
supports 10/100 Mbps.

Because of the bogus gigabit capability, phylib performs 1000BASE-T
master/slave resolution against the PHY's non-functional gigabit
registers, which never completes. Auto-negotiation then fails: the
link flaps between speeds or never comes up at all, while a manually
forced fixed speed works fine.

Cap the PHY at 100 Mbps so the gigabit capability is removed and the
master/slave resolution path is skipped. eth0 then auto-negotiates
reliably to 100 Mbps full-duplex.

Signed-off-by: Dhimant Thanki <dhimant.thanki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24022
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
target/linux/ath79/dts/ar7240_ruckus_zf7025.dts

index 8a540a0b1ac4397cde4f6b9a5d5afe819a8383c0..3e73314966a2f983a3411a9bc245025028181d30 100644 (file)
        nvmem-cell-names = "mac-address";
 };
 
+/*
+ * eth0 is connected to PHY 4 of the AR7240 built-in switch, which is
+ * 10/100 Mbps only, but the PHY erroneously advertises gigabit. This
+ * makes phylib attempt 1000BASE-T master/slave resolution that never
+ * completes, breaking auto-negotiation. Cap the PHY at 100 Mbps.
+ */
+&swphy4 {
+       max-speed = <100>;
+};
+
 &eth1 {
        status = "okay";
        nvmem-cells = <&macaddr_board_data_6c>;