Message ID | 20230921121946.3025771-1-yong.liang.choong@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | TSN auto negotiation between 1G and 2.5G | expand |
> Auto-negotiation between 10, 100, 1000Mbps will use > in-band auto negotiation. Auto-negotiation between 10/100/1000Mbps and > 2.5Gbps will work as the following proposed flow, the stmmac driver reads > the PHY link status registers then identifies the negotiated speed. I don't think you replied to my comment. in-band is just an optimisation. It in theory allows you to avoid a software path, the PHY driver talking to the MAC driver about the PHY status. As an optimisation, it is optional. Linux has the software path and the MAC driver you are using basically has it implemented. Why use this odd mix of in-band and out of band? It seems the change will be simpler if you just use the out of band method all the time and ignore in-band. Andrew
On Thu, Sep 21, 2023 at 03:14:59PM +0200, Andrew Lunn wrote: > > Auto-negotiation between 10, 100, 1000Mbps will use > > in-band auto negotiation. Auto-negotiation between 10/100/1000Mbps and > > 2.5Gbps will work as the following proposed flow, the stmmac driver reads > > the PHY link status registers then identifies the negotiated speed. > > I don't think you replied to my comment. > > in-band is just an optimisation. It in theory allows you to avoid a > software path, the PHY driver talking to the MAC driver about the PHY > status. As an optimisation, it is optional. Linux has the software > path and the MAC driver you are using basically has it implemented. Sorry Andrew, I have to disagree. It isn't always optional - there are PHYs out there where they won't pass data until the in-band exchange has completed. If you try to operate out-of-band without the PHY being told that is the case, and program the MAC/PCS end not to respond to the in-band frames from the PHY, the PHY will report link up as normal (since it reports the media side), but no data will flow because the MAC facing side of the PHY hasn't completed. The only exception are PHYs that default to in-band but have an inband bypass mode also enabled to cover the case where the MAC/PCS doesn't respond to the inband messages.
On 21/9/2023 10:09 pm, Russell King (Oracle) wrote: > On Thu, Sep 21, 2023 at 03:14:59PM +0200, Andrew Lunn wrote: >>> Auto-negotiation between 10, 100, 1000Mbps will use >>> in-band auto negotiation. Auto-negotiation between 10/100/1000Mbps and >>> 2.5Gbps will work as the following proposed flow, the stmmac driver reads >>> the PHY link status registers then identifies the negotiated speed. >> >> I don't think you replied to my comment. >> >> in-band is just an optimisation. It in theory allows you to avoid a >> software path, the PHY driver talking to the MAC driver about the PHY >> status. As an optimisation, it is optional. Linux has the software >> path and the MAC driver you are using basically has it implemented. > > Sorry Andrew, I have to disagree. It isn't always optional - there are > PHYs out there where they won't pass data until the in-band exchange > has completed. If you try to operate out-of-band without the PHY being > told that is the case, and program the MAC/PCS end not to respond to > the in-band frames from the PHY, the PHY will report link up as normal > (since it reports the media side), but no data will flow because the > MAC facing side of the PHY hasn't completed. > > The only exception are PHYs that default to in-band but have an inband > bypass mode also enabled to cover the case where the MAC/PCS doesn't > respond to the inband messages. > Russell is correct, we did set out-of-band for PCS and configured MAC. Due to the PHY not being completed, there will be no data flow through.