On Wed, Aug 12, 2020 at 06:13:33PM +0200, Marek Behún wrote: > The MACTYPE is not being lost. But changing it requires Port Software > Reset, which resets the link, so it cannot be done for example in > read_status.
Wouldn't the right place to configure it be in the config_init() method - which is called once we have a MAC attaching to the PHY? As I mentioned, if we had a way to pass the MAC interface supported mask into phylib, config_init() could then use that to determine what to do. > I think the MACTYPE should be set sometime during PHY initialisation, > and only once: either to XFI with rate matching, if the underlying MAC > does not support lower modes, or to 10gbase-r/2500base-x/sgmii mode, if > the underlying MAC supports only slower modes than 10G. Yes - only changing the MAC type if we have good reason to do so to support other rates. There is a related problem however. Note that if you have an 88x3310 (non-P) in the SFP, then when rate matching is enabled, the PHY will _not_ generate pause frames, and the PHY expects the MAC to be configured to pace itself to the slower speed. I don't believe we have support in MACs for that, but phylib and therefore phylink provides the information: interface - 10GBASE-R speed - media speed pause - media pause modes So, if speed != SPEED_10000 and there are no pause modes, we should, for the sake of the entire link, pace the MAC to the media speed by controlling its egress rate. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!