> > > > 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. I am not sure the module can retrieve SFP EEPROM information.