3
\$\begingroup\$

I have a SFP compatible module which has an I2C interface. I understand that SFP is a pseudo-standard but I can't find any documentation on the I2C interface and what registers in the EEPROM do what.

My goal is to just reset the SFP over I2C and read back any error messages that I might have access to.

Product in question: https://www.fs.com/products/12626.html

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Is the SFF-8742 standard what you are looking for? \$\endgroup\$
    – Kartman
    Commented Jan 21, 2022 at 0:44
  • \$\begingroup\$ @Kartman, I was about to say that should be posted as an answer, but then I realized 8742 is for SFP+, so it only applies to 10Gbps modules and faster. For this 1000BaseT module, INF-8074 looks to be the correct spec (still an SFF spec). There is probably also a lot of non-standard data in there beyond the range of registers that are defined in the standard. \$\endgroup\$
    – The Photon
    Commented Jan 21, 2022 at 6:20
  • \$\begingroup\$ Yes, those manuals are very helpful. Thank you all very much for your feedback :) \$\endgroup\$
    – CakeMaster
    Commented Jan 21, 2022 at 17:17

3 Answers 3

4
\$\begingroup\$

The relevant standard appears to be INF-8074.

It (and other SFP standards) are available from SNIA (The Storage Network Industry Association) here.

The SFF-8742 standard mentioned in a comment applies to SFP+ modules (10 Gb/s and above) so it doesn't technically apply to this 1 Gb/s product. However it is possible that the vendor has implemented some or all SFF-8742 registers despite the standard not technically applying.

\$\endgroup\$
2
  • \$\begingroup\$ Cheers, always good to learn a little. Via the OP’s link i found a local supplier of sfp’s and fiber stuff. \$\endgroup\$
    – Kartman
    Commented Jan 21, 2022 at 6:42
  • \$\begingroup\$ Thank you so much! \$\endgroup\$
    – CakeMaster
    Commented Jan 21, 2022 at 17:16
4
\$\begingroup\$

It's SFF-8079 and INF-8074 for SFP modules.

Linux tool called ethtool can read and decode SFP module information from NIC. As it's open source you can get help from it's sources. An example of decoded information it provides from SFP+ (I have access only to these atm) module:

ethtool -m enp1s0f1
    Identifier                                : 0x03 (SFP)
    Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
    Connector                                 : 0x07 (LC)
    Transceiver codes                         : 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    Transceiver type                          : 10G Ethernet: 10G Base-LR
    Encoding                                  : 0x06 (64B/66B)
    BR, Nominal                               : 10300MBd
    Rate identifier                           : 0x00 (unspecified)
    Length (SMF,km)                           : 10km
    Length (SMF)                              : 10000m
    Length (50um)                             : 0m
    Length (62.5um)                           : 0m
    Length (Copper)                           : 0m
    Length (OM3)                              : 0m
    Laser wavelength                          : 1310nm
    Vendor name                               : MikroTik
    Vendor OUI                                : 00:00:00
    Vendor PN                                 : S+31DLC10D
    Vendor rev                                : 01
    Option values                             : 0x00 0x1a
    Option                                    : RX_LOS implemented
    Option                                    : TX_FAULT implemented
    Option                                    : TX_DISABLE implemented
    BR margin, max                            : 0%
    BR margin, min                            : 0%
    Vendor SN                                 : MI101K61777
    Date code                                 : 200610
    Optical diagnostics support               : Yes
    Laser bias current                        : 40.614 mA
    Laser output power                        : 0.5274 mW / -2.78 dBm
    Receiver signal average optical power     : 0.3994 mW / -3.99 dBm
    Module temperature                        : 45.14 degrees C / 113.25 degrees F
    Module voltage                            : 3.2323 V
    Alarm/warning flags implemented           : Yes
    Laser bias current high alarm             : Off
    Laser bias current low alarm              : Off
    Laser bias current high warning           : Off
    Laser bias current low warning            : Off
    Laser output power high alarm             : Off
    Laser output power low alarm              : Off
    Laser output power high warning           : Off
    Laser output power low warning            : Off
    Module temperature high alarm             : Off
    Module temperature low alarm              : Off
    Module temperature high warning           : Off
    Module temperature low warning            : Off
    Module voltage high alarm                 : Off
    Module voltage low alarm                  : Off
    Module voltage high warning               : Off
    Module voltage low warning                : Off
    Laser rx power high alarm                 : Off
    Laser rx power low alarm                  : Off
    Laser rx power high warning               : Off
    Laser rx power low warning                : Off
    Laser bias current high alarm threshold   : 80.000 mA
    Laser bias current low alarm threshold    : 5.000 mA
    Laser bias current high warning threshold : 75.000 mA
    Laser bias current low warning threshold  : 6.000 mA
    Laser output power high alarm threshold   : 1.2589 mW / 1.00 dBm
    Laser output power low alarm threshold    : 0.1995 mW / -7.00 dBm
    Laser output power high warning threshold : 1.1220 mW / 0.50 dBm
    Laser output power low warning threshold  : 0.2511 mW / -6.00 dBm
    Module temperature high alarm threshold   : 90.00 degrees C / 194.00 degrees F
    Module temperature low alarm threshold    : -40.00 degrees C / -40.00 degrees F
    Module temperature high warning threshold : 85.00 degrees C / 185.00 degrees F
    Module temperature low warning threshold  : -35.00 degrees C / -31.00 degrees F
    Module voltage high alarm threshold       : 3.7999 V
    Module voltage low alarm threshold        : 2.7999 V
    Module voltage high warning threshold     : 3.7000 V
    Module voltage low warning threshold      : 2.9000 V
    Laser rx power high alarm threshold       : 1.2589 mW / 1.00 dBm
    Laser rx power low alarm threshold        : 0.0199 mW / -17.01 dBm
    Laser rx power high warning threshold     : 1.0000 mW / 0.00 dBm
    Laser rx power low warning threshold      : 0.0251 mW / -16.00 dBm
\$\endgroup\$
1
  • \$\begingroup\$ Thank you so much! \$\endgroup\$
    – CakeMaster
    Commented Jan 21, 2022 at 17:16
0
\$\begingroup\$

According to INF-8074,

The serial interface uses the 2-wire serial CMOS E2PROM protocol defined for the ATMEL AT24C01A/02/04 family of components.

So, I think AT24C family is clear for most people working with I2C.

My goal is to just reset the SFP over I2C and read back any error messages that I might have access to.

IMHO, there is no way to reset SFP module through I2C, even there is no reset pin on the module. So the only way must be to power off. And I've never seen any error message field or logging memory on SFPs I've worked with yet. But it's possible some company include extended memory area.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.