On 2019-06-02 9:15 a.m., Russell King - ARM Linux admin wrote: > On Fri, May 31, 2019 at 06:17:51PM -0600, Robert Hancock wrote: >> Our device is mainly intended for fiber modules, which is why 1000BaseX >> is being used. The variant of fiber modules we are using (for example, >> Finisar FCLF8520P2BTL) are set up for 1000BaseX, and seem like they are >> kind of a hack to allow using copper on devices which only support >> 1000BaseX mode (in fact that particular one is extra hacky since you >> have to disable 1000BaseX autonegotiation on the host side). This patch >> is basically intended to allow that particular case to work. > > Looking at the data sheet for FCLF8520P2BTL, it explicit states: > > PRODUCT SELECTION > Part Number Link Indicator 1000BASE-X auto-negotiation > on RX_LOS Pin enabled by default > FCLF8520P2BTL Yes No > FCLF8521P2BTL No Yes > FCLF8522P2BTL Yes Yes > > The idea being, you buy the correct one according to what the host > equipment requires, rather than just picking one and hoping it works. > > The data sheet goes on to mention that the module uses a Marvell > 88e1111 PHY, which seems to be quite common for copper SFPs from > multiple manufacturers (but not all) and is very flexible in how it > can be configured. > > If we detect a PHY on the SFP module, we check detect whether it is > an 88e1111 PHY, and then read out its configured link type. We don't > have a way to deal with the difference between FCLF8520P2BTL and > FCLF8521P2BTL, but at least we'll be able to tell whether we should > be in 1000Base-X mode for these modules, rather than SGMII.
It looks like that might provide a solution for modules using the Marvell PHY, however some of the modules we are supporting seem to use a Broadcom PHY, and I have no idea if there is any documentation for those. It would really be rather silly if there were absolutely no way to tell what mode the module wants from the EEPROM.. I don't have any copper modules set up for SGMII, but below is the ethtool -m output for two of the 1000BaseX modules I have. If you have access to an SGMII module, can you compare this to what it indicates? # ethtool -m eth1 Identifier : 0x03 (SFP) Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID) Connector : 0x00 (unknown or unspecified) Transceiver codes : 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x00 0x00 Transceiver type : Ethernet: 1000BASE-T Encoding : 0x01 (8B/10B) BR, Nominal : 1200MBd Rate identifier : 0x00 (unspecified) Length (SMF,km) : 0km Length (SMF) : 0m Length (50um) : 0m Length (62.5um) : 0m Length (Copper) : 100m Length (OM3) : 0m Laser wavelength : 0nm Vendor name : FINISAR CORP. Vendor OUI : 00:90:65 Vendor PN : FCLF8520P2BTL Vendor rev : A Option values : 0x00 0x12 Option : RX_LOS implemented Option : TX_DISABLE implemented BR margin, max : 0% BR margin, min : 0% Vendor SN : PX90NHX Date code : 170303 # ethtool -m eth1 Identifier : 0x03 (SFP) Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID) Connector : 0x00 (unknown or unspecified) Transceiver codes : 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x00 0x00 Transceiver type : Ethernet: 1000BASE-T Encoding : 0x01 (8B/10B) BR, Nominal : 1300MBd Rate identifier : 0x00 (unspecified) Length (SMF,km) : 0km Length (SMF) : 0m Length (50um) : 0m Length (62.5um) : 0m Length (Copper) : 100m Length (OM3) : 0m Laser wavelength : 0nm Vendor name : BEL-FUSE Vendor OUI : 00:00:00 Vendor PN : 1GBT-SFP06 Vendor rev : PB Option values : 0x00 0x12 Option : RX_LOS implemented Option : TX_DISABLE implemented BR margin, max : 0% BR margin, min : 0% Vendor SN : 0000000610 Date code : 1336 > > For a SFP cage meant to support fiber, I would recommend using the > FCLF8521P2BTL or FCLF8522P2BTL since those will behave more like a > 802.3z standards-compliant gigabit fiber connection. > -- Robert Hancock Senior Software Developer SED Systems, a division of Calian Ltd. Email: hanc...@sedsystems.ca