User EEPROM
Standard SFF-8472 defines user EEPROM space at A2h, bytes 128..247.
The following user space EEPROM formats are defined:
Calibration EEPROM format
Address A2H
===========
+------+--------+-----------------+-------------------------------------------------------------+
| A2H | #Bytes | Name | Description |
+------+--------+-----------------+-------------------------------------------------------------+
| Page 00h |
+------+--------+-----------------+-------------------------------------------------------------+
| 128 | 2 | Magic value | 16 bit magic value |
| 130 | 2 | Calibration date| The date of the calibration |
| 132 | 1 | Version | The version number of the calibration. Current version = 1 |
| 133 | 3 | OUI resp. | Organizationally Unique Identifier (Calibration responsible)|
| 136 | 4 | Elec Opt Dly | TX: Electric => Optical delay (q16.16, ps) |
| 140 | 4 | Opt Elec Dly | RX: Optical => Electric delay (q16.16, ps) |
| 144 | 4 | Rx_Pwr_Dly(0) | RX Optical power dependent delay, single precision float |
| 148 | 4 | Rx_Pwr_Dly(1) | RX Optical power dependent delay, single precision float |
| 152 | 4 | Rx_Pwr_Dly(2) | RX Optical power dependent delay, single precision float |
| 156 | 4 | Rx_Pwr_Dly(3) | RX Optical power dependent delay, single precision float |
| 160 | 4 | Rx_Pwr_Dly(4) | RX Optical power dependent delay, single precision float |
| 164 | 2 | T_Detun(Offset) | Temperature de-tuning, q7.8 |
| 166 | 2 | T_Detun(Slope) | Temperature de-tuning, q7.8 |
| 168 | 79 | reserved | All bytes 0xFF |
| 247 | 1 | CC_CALIB | Checkcode over bytes 128 to 246 |
+------+--------+-----------------+-------------------------------------------------------------+
All 16, 24 and 32 bit values are stored in network byte order (big-endian).
- Delay is expected to be < 10 picoseconds
Magic number
Magic number for the calibration: 0xCA1B. 'CALB' -> Calibration.
Version
The version is the version of the calibration EEPROM format. For this specification it is 1
Calibration date
This is the date the calibration was executed. Format to be determined.
OUI resp.
The ID organization responsible for the calibration.
For now this is determined to be the OHWR vendor ID:
byte 0 1 2
+------+----------+----------+
| 0x00 | OHWR-MSB | OHWR-LSB |
+------+----------+----------+
Elec Opt Dly
Fixed electric to optical (TX) delay, in picoseconds, using fixed point
16.16 format. This gives 1/2^16 picoseconds granularity and a range from
0..65ns.
Note: this format is conform the 32 least significant bits of the
UInteger64 specified for delays in the WR
Specification.
Opt Elc Dly
Optical to electrical delay (RX), in picoseconds, using fixed point
16.16 format. This gives 1/2^16 picoseconds granularity and a range from
0..65ns.
Note: this format is conform the 32 least significant bits of the
UInteger64 specified for delays in the WR
Specification.
Rx_Pwr_Dly
Rx power delay curve. Input is Rx_PWR (see SFF-8472, 9.3), which is the received power in uW, output is the delay in ps. For internally calibrated SFPs the fixed point ADC value must be converted to float first.
Rx_Pwr_Dly (ps) = Rx_Pwr_Dly(4) * Rx_PWR^4 (float) +
Rx_Pwr_Dly(3) * Rx_PWR^3 (float) +
Rx_Pwr_Dly(2) * Rx_PWR^2 (float) +
Rx_Pwr_Dly(1) * Rx_PWR^1 (float) +
Rx_Pwr_Dly(0)
T_Detun
Temperature dependent wavelength de-tuning, with respect to the specified wavelength.
Input is the calibrated temperature in fixed point 7.8 format. For internally calibrated this is the ADC value, for externally calibrated this is the output of the equation 1 from SFF-8472, 9.3. Output is fixed point 7.8 value in steps of 0.1nm. This means the detuning can range from -12.8nm up to 12.7nm, from the specified wavelength.
T_Detun (0.1nm) = T_Detun(Slope) * T(C) + T_Detun(Offset)
CC_CALIB
This check code is a one byte code that can be used to verify that the 119 bytes of calibration configuration data are correct. It uses byte 128 to 146 inclusive. (The same as all check codes, CC_*, from SFF-8472 )
SFP-Loopback Module EEPROM format
Last updated: 15 Nov 2016