Eap225 v1 lan port link speed 100mbit not working

Lan port speed 1000mbit only.

Settings for eth0:
  Supported ports: [ TP MII ]
  Supported link modes:   10baseT/Half 10baseT/Full 
                          100baseT/Half 100baseT/Full 
                          1000baseT/Full 
                          1000baseX/Full 
  Supported pause frame use: Symmetric Receive-only
  Supports auto-negotiation: Yes
  Supported FEC modes: Not reported
  Advertised link modes:  10baseT/Half 10baseT/Full 
                          100baseT/Half 100baseT/Full 
                          1000baseT/Full 
                          1000baseX/Full 
  Advertised pause frame use: No
  Advertised auto-negotiation: Yes
  Advertised FEC modes: Not reported
  Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                       100baseT/Half 100baseT/Full 
  Link partner advertised pause frame use: Transmit-only
  Link partner advertised auto-negotiation: Yes
  Link partner advertised FEC modes: Not reported
  Speed: 100Mb/s
  Duplex: Full
  Port: MII
  PHYAD: 4
  Transceiver: external
  Auto-negotiation: on
  Current message level: 0x000000ff (255)
             drv probe link timer ifdown ifup rx_err tx_err
  Link detected: yes
root@OpenWrt:~# 

Settings for eth0:
  Supported ports: [ TP MII ]
  Supported link modes:   10baseT/Half 10baseT/Full 
                          100baseT/Half 100baseT/Full 
                          1000baseT/Full 
                          1000baseX/Full 
  Supported pause frame use: Symmetric Receive-only
  Supports auto-negotiation: Yes
  Supported FEC modes: Not reported
  Advertised link modes:  10baseT/Half 10baseT/Full 
                          100baseT/Half 100baseT/Full 
                          1000baseT/Full 
                          1000baseX/Full 
  Advertised pause frame use: No
  Advertised auto-negotiation: Yes
  Advertised FEC modes: Not reported
  Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                       100baseT/Half 100baseT/Full 
                                       1000baseT/Full 
  Link partner advertised pause frame use: Symmetric
  Link partner advertised auto-negotiation: Yes
  Link partner advertised FEC modes: Not reported
  Speed: 1000Mb/s
  Duplex: Full
  Port: MII
  PHYAD: 4
  Transceiver: external
  Auto-negotiation: on
  Current message level: 0x000000ff (255)
             drv probe link timer ifdown ifup rx_err tx_err
  Link detected: yes
root@OpenWrt:~#

similar situation: D7800 wan not working with 100Mbit - #15 by simon_b

A build including the changes submitted by @ynezz solved the issue I was having on my D7800.

Hi. some problem here with an EAP225 Outdoor v1.
All was fine on bench environment (with 1GBit link), but after mounting on pole I don't get the link working to my TPLink WR741ND v4.
Adding a WDR3600 as switch in the middle made the link work. Putting a dumb Netgear GS108 switch in the middle made link work only for some seconds. So even 1GBit/s seems not reliable.

Did the mentioned patch of @simon_b fix it?

That patch was for the D7800, but perhaps applying it to a custom build on the EAP225 would help?

Before the EAP2xx-series was merged into OpenWrt, @j-d-r maintained the port out-of-tree. This patch added the original ar71xx support for the EAP245 v1, and should have a fix for 100Mb/s links. But I can't really remember (or find) which part of the code should be responsible for that...

More recently, @blocktrron merged a patch to fix 10Mb/s links.
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=bbff6239e2ea273388f4ca0f8586945ff5f36271

I just tested the latest master on my EAP245 v1 with the link forced to 10Mb/s and 100Mb/s (both half duplex), and that appears to work fine.

The second commit required for 10 and 100 links is https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=fbbad9a9a629b388626b477e6cd692c160f63fb3

1 Like

Hello,

I remember that bug as difficult to solve, but not the details. I've deleted old buggy branches related to lede, but i found this in this PR:

The fix consists in using ag71xx-mdio instead of mdio-gpio and explicitly set gpio functions before registering mdio. mdio-gpio does not set dev->mii_dev->bus resulting in fixed ethernet mode.

Since your changes, we no longer use GPIO for mdio but pins are set to MDC/MDIO in DTS.

diff --git a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
index 3978be75e6..4d99c234d9 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
+++ b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
@@ -109,7 +109,6 @@
 &eth0 {
        status = "okay";
 
-       phy-handle = <&phy4>;
        phy-mode = "sgmii";
        pll-data = <0x03000000 0x00000101 0x00001313>;
 
@@ -120,6 +119,11 @@
        gmac-config {
                device = <&gmac>;
        };
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
 };
 
 &wmac {

That was the backport of the D7800 code-fix I built, but did not change anything

  • the 1st mentioned patch of @blocktrron ("ath79: fix 10 Mbit PLL data for TP-Link EAP2xx" - bbff6239e2ea273388f4ca0f8586945ff5f36271) is already on 21.02 branch
  • the 2nd mentioned by @blocktrron ("ath79: force SGMII SerDes mode to MAC operation" - fbbad9a9a629b388626b477e6cd692c160f63fb3) seems to be a perfect match. The pure commit subject did not trigger me to take it into account before.

I'll start a build and report back. Based on this we might then have to take a closer look the the old PR of @j-d-r .

just installed the build with this patch included - fixes the link-problem for the 100MBit towards the WR741ND v4 and also the GS108 switch has now stable 1GB link

@blocktrron can you cherry-pick directly to 21.02 branch?

1 Like

Picked to 21.02.

I saw this thread by pure luck. Next time dorp me an E-Mail with a link to the thread, as i do not get notifications for mentions on the forum. :smile:

1 Like