• Vladimir Oltean's avatar
    net: phy: aquantia: add AQR112 and AQR412 PHY IDs · 973fbe68
    Vladimir Oltean authored
    These are Gen3 Aquantia N-BASET PHYs which support 5GBASE-T,
    2.5GBASE-T, 1000BASE-T and 100BASE-TX (not 10G); also EEE, Sync-E,
    PTP, PoE.
    
    The 112 is a single PHY package, the 412 is a quad PHY package.
    
    The system-side SERDES interface of these PHYs selects its protocol
    depending on the negotiated media side link speed. That protocol can be
    1000BASE-X, 2500BASE-X, 10GBASE-R, SGMII, USXGMII.
    
    The configuration of which SERDES protocol to use for which link speed
    is made by firmware; even though it could be overwritten over MDIO by
    Linux, we assume that the firmware provisioning is ok for the board on
    which the driver probes.
    
    For cases when the system side runs at a fixed rate, we want phylib/phylink
    to detect the PAUSE rate matching ability of these PHYs, so we need to
    use the Aquantia rather than the generic C45 driver. This needs
    aqr107_read_status() -> aqr107_read_rate() to set phydev->rate_matching,
    as well as the aqr107_get_rate_matching() method.
    
    I am a bit unsure about the naming convention in the driver. Since
    AQR107 is a Gen2 PHY, I assume all functions prefixed with "aqr107_"
    rather than "aqr_" mean Gen2+ features. So I've reused this naming
    convention.
    
    I've tested PHY "SGMII" statistics as well as the .link_change_notify
    method, which prints:
    
    Aquantia AQR412 mdio_mux-0.4:00: Link partner is Aquantia PHY, FW 4.3, fast-retrain downshift advertised, fast reframe advertised
    
    Tested SERDES protocols are usxgmii and 2500base-x (the latter with
    PAUSE rate matching). Tested link modes are 100/1000/2500 Base-T
    (with Aquantia link partner and with other link partners). No notable
    events observed.
    
    The placement of these PHY IDs in the driver is right before AQR113C,
    a Gen4 PHY.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    973fbe68
aquantia_main.c 25.5 KB