• Vladimir Oltean's avatar
    net: enetc: force the RGMII speed and duplex instead of operating in inband mode · c76a9721
    Vladimir Oltean authored
    The ENETC port 0 MAC supports in-band status signaling coming from a PHY
    when operating in RGMII mode, and this feature is enabled by default.
    
    It has been reported that RGMII is broken in fixed-link, and that is not
    surprising considering the fact that no PHY is attached to the MAC in
    that case, but a switch.
    
    This brings us to the topic of the patch: the enetc driver should have
    not enabled the optional in-band status signaling for RGMII unconditionally,
    but should have forced the speed and duplex to what was resolved by
    phylink.
    
    Note that phylink does not accept the RGMII modes as valid for in-band
    signaling, and these operate a bit differently than 1000base-x and SGMII
    (notably there is no clause 37 state machine so no ACK required from the
    MAC, instead the PHY sends extra code words on RXD[3:0] whenever it is
    not transmitting something else, so it should be safe to leave a PHY
    with this option unconditionally enabled even if we ignore it). The spec
    talks about this here:
    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/138/RGMIIv1_5F00_3.pdf
    
    Fixes: 71b77a7a ("enetc: Migrate to PHYLINK and PCS_LYNX")
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Acked-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c76a9721
enetc_hw.h 24.6 KB