ath79: fix Ethernet auto-negotiation on Ruckus ZoneFlex 7025

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>
This commit is contained in:
Dhimant Thanki
2026-07-01 18:58:36 +02:00
committed by Robert Marko
parent e6f5d04c52
commit 9a44d910cc
@@ -186,6 +186,16 @@
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>;