On Mon, Sep 16, 2019 at 11:13 AM Andrew Lunn <and...@lunn.ch> wrote: > > > When it is in the good state I see that reg 0x01 is 0x796d where bit > > 1.2 reports 'Link is up' and bit 1.5 reports 'Auto-negotiation process > > complete'. However, once I get to the bad state (it may take several > > tries of ifdown, ifup to get there) then reg 0x01 is 0x7649 reporting > > 'Link is down' and 'Auto-negotiation process not completed'. This can > > be fixed by resetting the phy './phytool write eth0/3/0 0x9140' > > > > So, I guess that means the driver is doing what it is supposed to? > > Could we add quirk or something to reset the phy again from the driver > > if auto-negotiation doesn't complete with x seconds? > > Hi Paul > > Adding a timeout would make sense. But please try to hide all this > inside the PHY driver. Since it is being polled, the read_status() > should be called once per second, so you should be able to handle all > this inside that driver callback. Thanks Andrew,
It looks like there are more issues than just the auto-negotiation. Even when the negotiated link comes back I never see any more rx packets from the macb driver. I'll look into this more. thanks, Paul