> On Fri, Aug 09, 2024 at 04:38:40PM -0700, 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. > > Is 1 actually 1000BaseX? An SFP module using fibre would typically > want 1000BaseX, and only support one speed. An SFP module using copper > typically has a PHY in it, it performs auto-neg on the media side, and > then uses SGMII inband signalling to tell the MAC what data rate, > symbol duplication to do. And maybe mode 0 has in-band signalling > turned off, in which case 1000BaseX and SGMII become identical, > because it is the signalling which is different. 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. After a cable is plugged in to the SFP the link interrupt is triggered. For 10/100/1000Base-T SFP the connected speed is also reported. For fiber type SFP this information is not revealed so the driver assumes 1000 speed. In fact 100Base-FX fiber SFP is not supported and does not work.