On Tue, Aug 13, 2024 at 09:14:34PM +0000, Tristram.Ha@xxxxxxxxxxxxx wrote: > > > From: Tristram Ha <tristram.ha@xxxxxxxxxxxxx> > > > > > > The SGMII module of KSZ9477 switch can be setup in 3 ways: 0 for direct > > > connect, 1 for 1000BaseT SFP, and 2 for 10/100/1000 SFP. > > > > > > SFP is typically used so the default is 1. The driver can detect > > > 10/100/1000 SFP and change the mode to 2. For direct connect this mode > > > has to be explicitly set to 0 as driver cannot detect that > > > configuration. > > > > Could you explain this in more detail. Other SGMII blocks don't need > > this. Why is this block special? > > > > Has this anything to do with in-band signalling? > > There are 2 ways to program the hardware registers so that the SGMII > module can communicate with either 1000Base-T/LX/SX SFP or > 10/100/1000Base-T SFP. When a SFP is plugged in the driver can try to > detect which type and if it thinks 10/100/1000Base-T SFP is used it > changes the mode to 2 and program appropriately. What should happen here is that phylink will read the SFP EEPROM and determine what mode should be used. It will then tell the MAC or PCS how to configure itself, 1000BaseX, or SGMII. Look at the mac_link_up() callback, parameter interface. Andrew