FYI I changed 4.12.0 drivers/net/phy/realtek.c RTL8211F code to equal the 3.14.29 amlogic/ethernet/phy/am_realtek.c code and now the networking works without TCP stalls.
I don't say below patch should be considered mainstream (as maybe some 4.12.0 rtl8211f_config_init code should not be removed) but sure someone could figure out what best patch is... -- # diff -U2 realtek.c.orig realtek.c --- realtek.c.orig 2017-07-03 01:07:02.000000000 +0200 +++ realtek.c 2017-07-11 01:32:20.273445023 +0200 @@ -94,28 +94,27 @@ } +#define RTL8211F_MMD_CTRL 0x0D +#define RTL8211F_MMD_DATA 0x0E +#define RTL8211E_INER_LINK_STAT 0x10 + static int rtl8211f_config_init(struct phy_device *phydev) { - int ret; - u16 reg; - - ret = genphy_config_init(phydev); - if (ret < 0) - return ret; - - phy_write(phydev, RTL8211F_PAGE_SELECT, 0xd08); - reg = phy_read(phydev, 0x11); - - /* enable TX-delay for rgmii-id and rgmii-txid, otherwise disable it */ - if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || - phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) - reg |= RTL8211F_TX_DELAY; - else - reg &= ~RTL8211F_TX_DELAY; - - phy_write(phydev, 0x11, reg); - /* restore to default page 0 */ - phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0); - + int val; +/* we want to disable eee */ + phy_write(phydev, RTL8211F_MMD_CTRL, 0x7); + phy_write(phydev, RTL8211F_MMD_DATA, 0x3c); + phy_write(phydev, RTL8211F_MMD_CTRL, 0x4007); + phy_write(phydev, RTL8211F_MMD_DATA, 0x0); +/* disable 1000m adv*/ + val = phy_read(phydev, 0x9); + phy_write(phydev, 0x9, val&(~(1<<9))); +/* rx reg 21 bit 3 tx reg 17 bit 8 */ +/* + phy_write(phydev, 0x1f, 0xd08); + val = phy_read(phydev, 0x15); + phy_write(phydev, 0x15,val| 1<<21); + */ return 0; +/* Enable Auto Power Saving mode */ } @@ -167,6 +166,6 @@ .name = "RTL8211F Gigabit Ethernet", .phy_id_mask = 0x001fffff, - .features = PHY_GBIT_FEATURES, - .flags = PHY_HAS_INTERRUPT, + .features = PHY_GBIT_FEATURES | SUPPORTED_Pause | SUPPORTED_Asym_Pause, + .flags = PHY_HAS_INTERRUPT | PHY_HAS_MAGICANEG, .config_aneg = &genphy_config_aneg, -- On 2017 Jul 08, Marc Duponcheel wrote: > Hi all > > Similar to 'crow' > > ARM GLX Khadas VIM Pro - Ethernet detected as only 10Mbps and stalled after > some traffic > > I also have the situation where copying large file over LAN stalls. > > 3.14.29 performance is good 4.12.0 performance not > > > Perhaps one must compare 3.14.29 am_realtek.c and realtek.c with 4.12.0 > realtek.c > > > thanks have a nice day