Partial fix for RTL8211CL connectivity issue

Dario dario86 at tutamail.com
Fri Apr 24 19:19:17 CEST 2020


Hello,

My A20-OLinuXino-LIME2 has a RTL8211CL network adapter and is affected by the same issue described for RTL8211F_PHY_FORCE_EEE_RXC_ON. In u-boot/drivers/net/phy/realtek.c I copied «phydev->flags |= PHY_RTL8211F_FORCE_EEE_RXC_ON;» inside rtl8211b_probe() and the following portion of code enabled by the fix at the beginning of rtl8211x_config():

if (phydev->flags & PHY_RTL8211F_FORCE_EEE_RXC_ON) {
    unsigned int reg;

    reg = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_CTRL1);
    reg &= ~MDIO_PCS_CTRL1_CLKSTOP_EN;
    phy_write_mmd(phydev, MDIO_MMD_PCS, MDIO_CTRL1, reg);
}

When rebooting from GNU/Linux in Das U-Boot, issuing «dhcp» gives me this:

=> dhcp
ethernet at 1c50000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet at 1c50000
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC de:ad:be:ef:00:01
HOST MAC de:ad:be:ef:00:00
RNDIS ready
The remote end did not respond in time.

If I issue the same command once again immediately after, it will instantly report the device as connected, with no delay at all, as if it was already connected the first time, but the driver failed to report the device as connected.

If you have no clue for a proper fix, I will try to set up a GDB environment to see what's going on. I am no expert though.


More information about the U-Boot mailing list