CodingBox Documentation

SFF-8636 lower page 00h register map

The lower 128 bytes of a QSFP+/QSFP28 module are always visible and hold what a host touches at runtime: identifier and revision, interrupt flags, module and per-lane monitors, Tx disable, rate and application select, power control, CDR control, masks, passwords and the page-select byte. This page lists them byte by byte and bit by bit, compiled against SFF-8636 Rev 2.11 (fields introduced in Rev 2.10 are marked rev 2.10). Narrative: SFF-8636; the identity block is in Upper page 00h map.

Legend: rsvd = reserved · vendor = vendor specific · lanes are numbered 1–4; in per-lane bytes bits 7–4 = lanes 4,3,2,1 of the first group and bits 3–0 = lanes 4,3,2,1 of the second group unless stated otherwise · flags are latched, cleared on read.

Identification and status — bytes 0–2

ByteFieldBits
0IdentifierSFF-8024 Table 4-1: 0Ch QSFP · 0Dh QSFP+ · 11h QSFP28 · 1Eh QSFP with CMIS (then the CMIS map applies)
1Revision compliance00h unspecified · 01h SFF-8436 ≤ 4.8 · 02h SFF-8436 ≤ 4.8 with 186–189 per SFF-8636 · 03h SFF-8636 ≤ 1.3 · 04h 1.4 · 05h 1.5 · 06h 2.0 · 07h 2.5/2.6/2.7 · 08h 2.8/2.9/2.10 — Specification revisions
2Status indicators7–3 rsvd · 2 Flat_mem (1 = only page 00h) · 1 IntL (1 = interrupt asserted, read-only mirror of the pin) · 0 Data_Not_Ready

Interrupt flags — bytes 3–21

ByteFlag groupBits
3LOS7 L-Tx4 LOS · 6 L-Tx3 LOS · 5 L-Tx2 LOS · 4 L-Tx1 LOS · 3 L-Rx4 LOS · 2 L-Rx3 LOS · 1 L-Rx2 LOS · 0 L-Rx1 LOS
4Tx fault / adaptive EQ fault7 L-Tx4 adaptive EQ fault · 6 L-Tx3 · 5 L-Tx2 · 4 L-Tx1 adaptive EQ fault · 3 L-Tx4 fault · 2 L-Tx3 fault · 1 L-Tx2 fault · 0 L-Tx1 fault
5LOL (CDR lock)7 L-Tx4 LOL · 6 L-Tx3 · 5 L-Tx2 · 4 L-Tx1 LOL · 3 L-Rx4 LOL · 2 L-Rx3 · 1 L-Rx2 · 0 L-Rx1 LOL
6Temperature7 temp high alarm · 6 temp low alarm · 5 temp high warning · 4 temp low warning · 3–1 rsvd · 0 initialisation complete flag rev 2.x
7Vcc7 Vcc high alarm · 6 Vcc low alarm · 5 Vcc high warning · 4 Vcc low warning · 3–0 rsvd
8vendor
9Rx power lanes 1–27 Rx1 power high alarm · 6 Rx1 low alarm · 5 Rx1 high warning · 4 Rx1 low warning · 3 Rx2 high alarm · 2 Rx2 low alarm · 1 Rx2 high warning · 0 Rx2 low warning
10Rx power lanes 3–4same layout for Rx3 (7–4) and Rx4 (3–0)
11Tx bias lanes 1–2same layout: Tx1 bias (7–4), Tx2 bias (3–0)
12Tx bias lanes 3–4Tx3 (7–4), Tx4 (3–0)
13Tx power lanes 1–2Tx1 power (7–4), Tx2 power (3–0)
14Tx power lanes 3–4Tx3 (7–4), Tx4 (3–0)
15–16rsvd
17–21vendorvendor-specific flags

Module monitors — bytes 22–33

BytesMonitorFormat
22–23Temperaturesigned 16-bit, 1/256 °C
24–25rsvd
26–27Vccunsigned 16-bit, 100 µV
28–29rsvd
30–33vendor

Channel monitors — bytes 34–81

BytesMonitorFormat
34–35 / 36–37 / 38–39 / 40–41Rx1 / Rx2 / Rx3 / Rx4 powerunsigned 16-bit, 0.1 µW
42–43 / 44–45 / 46–47 / 48–49Tx1 / Tx2 / Tx3 / Tx4 biasunsigned 16-bit, 2 µA
50–51 / 52–53 / 54–55 / 56–57Tx1 / Tx2 / Tx3 / Tx4 powerunsigned 16-bit, 0.1 µW
58–65rsvd
66–81vendor
82–85rsvd

Per-lane interpretation: Per-lane diagnostics.

Controls — bytes 86–99

ByteFieldBits
86Tx disable7–4 rsvd · 3 Tx4 disable · 2 Tx3 · 1 Tx2 · 0 Tx1 disable (1 = laser off)
87Rx rate select7–6 Rx4 rate select · 5–4 Rx3 · 3–2 Rx2 · 1–0 Rx1 (2-bit code per lane; 00 = lowest rate group) — Rate select
88Tx rate select7–6 Tx4 · 5–4 Tx3 · 3–2 Tx2 · 1–0 Tx1
89Rx4 application selectapplication code from page 01h (SFF-8079 model); 00h = none
90Rx3 application select
91Rx2 application select
92Rx1 application select
93Power control7–4 rsvd · 3 power class 8 enable rev 2.10 · 2 high power class enable (classes 5–7) · 1 Power_set (1 = low power mode; effective when bit 0 = 1) · 0 Power_override (1 = software controls power mode instead of the LPMode pin)
94Tx4 application select
95Tx3 application select
96Tx2 application select
97Tx1 application select
98CDR control7 Tx4 CDR on · 6 Tx3 · 5 Tx2 · 4 Tx1 CDR on · 3 Rx4 CDR on · 2 Rx3 · 1 Rx2 · 0 Rx1 CDR on (1 = CDR enabled, 0 = bypass) — CDR
99Signal control rev 2.107–2 rsvd · 1 LPMode/TxDis input pin function (0 = LPMode, 1 = TxDis) · 0 IntL/LOSL output pin function (0 = IntL, 1 = LOSL); availability advertised in upper byte 193

Masks — bytes 100–106

A mask bit set to 1 prevents the corresponding flag from asserting IntL.

ByteMasks forBit layout
100LOS flagsas byte 3
101Tx fault / adaptive EQ faultas byte 4
102LOL flagsas byte 5
103Temperature flags7–4 as byte 6 bits 7–4 · 0 initialisation-complete mask
104Vcc flagsas byte 7
105vendor
106vendor

Rx power, Tx bias and Tx power masks are on page 03h bytes 242–247.

Extended controls and passwords — bytes 107–127

ByteFieldContents
107Max power rev 2.10maximum power consumption in 0.1 W units, valid for power class 8 (upper byte 129 bit 5)
108–109Propagation delay rev 2.10cable assemblies: delay in units of 10 ns
110Advanced low-power mode rev 2.10bits 3–0 advertise/control an intermediate low-power class (per revision)
111–112rsvd
113–118rsvd / vendor
119–122Password change entryvendor-defined (write new password)
123–126Password entryvendor-defined; typical unlock area — Write-protection types
127Page select00h identity · 01h application select table · 02h user EEPROM · 03h thresholds & channel controls · 20h–21h optional; write before reading 128–255

Reading a QSFP28 lower page in practice

  1. Byte 0 = 11h, byte 1 = 06h or 08h → SFF-8636 rev 2.x QSFP28; byte 2 bit 0 = 0 → data ready.
  2. Bytes 3–14 all 00h → no LOS, fault, LOL or threshold flags (read twice: the first read clears latched history).
  3. Bytes 34–57 → four Rx powers, four bias currents, four Tx powers; compare lanes with each other (Typical values).
  4. Byte 86 = 00h → all lasers enabled; byte 93 bit 1 = 0 → high power; byte 98 = FFh → all CDRs on.
  5. Byte 127 = 00h → upper page shows identity (Upper page 00h map).