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>
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>;
+};
+
ð1 {
status = "okay";
nvmem-cells = <&macaddr_board_data_6c>;