• Martin Blumenstingl's avatar
    net: lantiq: Wait for the GPHY firmware to be ready · 2a1828e3
    Martin Blumenstingl authored
    A user reports (slightly shortened from the original message):
      libphy: lantiq,xrx200-mdio: probed
      mdio_bus 1e108000.switch-mii: MDIO device at address 17 is missing.
      gswip 1e108000.switch lan: no phy at 2
      gswip 1e108000.switch lan: failed to connect to port 2: -19
      lantiq,xrx200-net 1e10b308.eth eth0: error -19 setting up slave phy
    
    This is a single-port board using the internal Fast Ethernet PHY. The
    user reports that switching to PHY scanning instead of configuring the
    PHY within device-tree works around this issue.
    
    The documentation for the standalone variant of the PHY11G (which is
    probably very similar to what is used inside the xRX200 SoCs but having
    the firmware burnt onto that standalone chip in the factory) states that
    the PHY needs 300ms to be ready for MDIO communication after releasing
    the reset.
    
    Add a 300ms delay after initializing all GPHYs to ensure that the GPHY
    firmware had enough time to initialize and to appear on the MDIO bus.
    Unfortunately there is no (known) documentation on what the minimum time
    to wait after releasing the reset on an internal PHY so play safe and
    take the one for the external variant. Only wait after the last GPHY
    firmware is loaded to not slow down the initialization too much (
    xRX200 has two GPHYs but newer SoCs have at least three GPHYs).
    
    Fixes: 14fceff4 ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Acked-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20201115165757.552641-1-martin.blumenstingl@googlemail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    2a1828e3
lantiq_gswip.c 55.8 KB