EEPROM memory map quick reference
The one-page byte map for the three memory layouts CodingBox works with most: SFF-8472 (SFP class), SFF-8636 (QSFP+/QSFP28) and CMIS (QSFP-DD, OSFP, QSFP112, SFP-DD). Use it to find a field fast in the EEPROM editor; the editor names every byte on hover, and the specification documents remain the authority for edge cases.
Positions follow the current public revisions (SFF-8472 rev 12.x, SFF-8636 rev 2.x, CMIS 5.x). Older modules may implement earlier revisions — check the compliance byte.
SFF-8472 — A0h (serial ID)
| Bytes | Field | Notes |
|---|---|---|
| 0 | Identifier | 03h = SFP/SFP+/SFP28 (SFF-8024) |
| 1 | Extended identifier | 04h = MOD_DEF 4 (two-wire ID) |
| 2 | Connector | 07h LC, 01h SC, 0Ch MPO, 21h copper, 23h no separable |
| 3–10 | Transceiver compliance codes | Ethernet 10G (3), SONET (4–5), Ethernet 1G (6), FC (7–10) |
| 11 | Encoding | 64b/66b, 8b/10b, NRZ… |
| 12 | Nominal signalling rate | ×100 Mb/s (103 = 10.3 Gb/s) |
| 13 | Rate identifier | rate-select scheme (SFF-8079) |
| 14 | Length SMF | km |
| 15 | Length SMF | ×100 m |
| 16 | Length 50 µm OM2 | ×10 m |
| 17 | Length 62.5 µm OM1 | ×10 m |
| 18 | Length OM4 or copper | m |
| 19 | Length OM3 | ×10 m |
| 20–35 | Vendor name | ASCII, space-padded |
| 36 | Extended compliance code | SFF-8024 Table 4-4 |
| 37–39 | Vendor OUI | IEEE company ID |
| 40–55 | Vendor part number | ASCII |
| 56–59 | Vendor revision | ASCII |
| 60–61 | Wavelength (nm) or cable compliance | 1310 = 051Eh |
| 62 | Fibre Channel speed 2 / unallocated | — |
| 63 | CC_BASE | checksum of bytes 0–62 |
| 64–65 | Options | TX_DISABLE, TX_FAULT, RX_LOS, rate select… |
| 66–67 | Signalling rate max / min | % above / below nominal |
| 68–83 | Vendor serial number | ASCII |
| 84–91 | Date code | YYMMDDLL |
| 92 | Diagnostic monitoring type | bit 6 DDM, bit 5 internal cal, bit 4 external cal, bit 3 average/OMA |
| 93 | Enhanced options | alarm/warning flags, soft TX_DISABLE, soft rate select |
| 94 | SFF-8472 compliance | revision the module follows |
| 95 | CC_EXT | checksum of bytes 64–94 |
| 96–127 | Vendor specific | — |
| 128–255 | Reserved (SFF-8079) | — |
SFF-8472 — A2h (diagnostics)
| Bytes | Field | Notes |
|---|---|---|
| 0–39 | Thresholds | temp, Vcc, bias, Tx pwr, Rx pwr — each HA, LA, HW, LW (details) |
| 40–55 | Optional thresholds | laser temp, TEC current |
| 56–91 | External calibration constants | Rx power polynomial, slopes/offsets (details) |
| 92–94 | Reserved | — |
| 95 | CC_DMI | checksum of bytes 0–94 |
| 96–105 | Real-time monitors | temp, Vcc, Tx bias, Tx pwr, Rx pwr (units) |
| 106–109 | Optional monitors | laser temp / TEC |
| 110 | Status / control | TX_DISABLE state, RS0/RS1, TX_FAULT, RX_LOS, data ready |
| 111 | Reserved | — |
| 112–113 | Alarm flags | — |
| 114–115 | Optional controls | Tx input EQ / Rx output emphasis |
| 116–117 | Warning flags | — |
| 118–119 | Extended status / control | soft RS, power level |
| 120–126 | Vendor specific | password area 0x7B–0x7E (123–126) on protected modules (write protection) |
| 127 | Table / page select | selects optional upper tables |
| 128–247 | User EEPROM (Table 00h) | writable scratch area |
| 248–255 | Vendor control | — |
SFF-8636 — lower page 00h (QSFP+/QSFP28)
| Bytes | Field |
|---|---|
| 0 | Identifier (0Dh QSFP+, 11h QSFP28) |
| 1 | Revision compliance |
| 2 | Status: data-not-ready, IntL, flat memory |
| 3 | Tx LOS (7–4) / Rx LOS (3–0) |
| 4 | Tx adaptive-EQ fault / Tx fault |
| 5 | Tx LOL / Rx LOL (CDR) |
| 6–7 | Temperature / Vcc alarm-warning flags |
| 9–14 | Per-lane Rx power, Tx bias, Tx power flags |
| 22–23 | Module temperature |
| 26–27 | Module Vcc |
| 34–41 | Rx power, lanes 1–4 |
| 42–49 | Tx bias, lanes 1–4 |
| 50–57 | Tx power, lanes 1–4 |
| 86 | Tx disable per lane |
| 87 / 88 | Rx / Tx rate select |
| 93 | Power control (low-power, override) |
| 98 | CDR control (Tx 7–4, Rx 3–0) |
| 100–106 | Interrupt masks |
| 119–122 | Password change entry |
| 123–126 | Password entry (0x7B) |
| 127 | Page select |
SFF-8636 — upper page 00h (identity)
| Bytes | Field |
|---|---|
| 128 | Identifier |
| 129 | Extended identifier: power class, CDR present (bits 3/2), CLEI |
| 130 | Connector |
| 131–138 | Specification compliance (Ethernet, SONET, SAS, GbE, FC) |
| 139 | Encoding |
| 140 | Nominal bit rate (×100 Mb/s; FFh → see 222) |
| 141 | Extended rate select compliance |
| 142 | Length SMF (km) |
| 143 | Length OM3 (×2 m) |
| 144 / 145 | Length OM2 / OM1 (m) |
| 146 | Length copper or OM4 (m) |
| 147 | Device technology (laser type, cooled, tunable…) |
| 148–163 | Vendor name |
| 164 | Extended module codes (InfiniBand) |
| 165–167 | Vendor OUI |
| 168–183 | Vendor part number |
| 184–185 | Vendor revision |
| 186–187 | Wavelength (÷20 nm) or copper attenuation |
| 188–189 | Wavelength tolerance (÷200) |
| 190 | Max case temperature |
| 191 | CC_BASE (128–190) |
| 192 | Extended specification compliance (SFF-8024 Table 4-4) |
| 193–195 | Options |
| 196–211 | Vendor serial number |
| 212–219 | Date code |
| 220 | Diagnostic monitoring type |
| 221 | Enhanced options |
| 222 | Nominal bit rate (×250 Mb/s) |
| 223 | CC_EXT (192–222) |
| 224–255 | Vendor specific |
Upper page 03h holds thresholds; page 02h user EEPROM; page 01h application select (SFF-8636).
CMIS — lower page and key pages
| Location | Field |
|---|---|
| Lower 0 | Identifier (18h QSFP-DD, 19h OSFP, 1Eh QSFP112, 1Ah SFP-DD) |
| Lower 1 | CMIS revision (e.g. 50h = 5.0) |
| Lower 2 | Module characteristics: flat memory, memory model |
| Lower 3 | Module state (bits 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault) |
| Lower 8–13 | Module flags |
| Lower 14–25 | Module monitors (temp 14–15, Vcc 16–17, aux) |
| Lower 26 | Module global controls (low-power, software reset) |
| Lower 118–121 | Password change |
| Lower 122–125 | Password entry |
| Lower 126 | Bank select |
| Lower 127 | Page select |
| Page 00h 128–255 | Identity: vendor 129–144, OUI 145–147, PN 148–163, rev 164–165, SN 166–181, date 182–189, CLEI 190–199, power class 200–201, connector 203, media type 212… |
| Page 01h | Advertisements: monitors implemented, CDR support, VDM, applications (86–117) |
| Page 02h | Thresholds |
| Page 10h | Lane controls: data-path, Tx disable, CDR enable (160/161), application select |
| Page 11h | Lane status and monitors: flags 134–153, Tx power 154–169, Tx bias 170–185, Rx power 186–201 |
| Pages 20h–2Fh | VDM (Per-lane diagnostics) |
| Pages 9Fh, A0h+ | CDB command / reply |
Full description: CMIS, MIS for SFP-DD.
Checksums
| Checksum | Covers | Where |
|---|---|---|
| CC_BASE (SFP) | A0h 0–62 | A0h 63 |
| CC_EXT (SFP) | A0h 64–94 | A0h 95 |
| CC_DMI (SFP) | A2h 0–94 | A2h 95 |
| CC_BASE (QSFP) | 128–190 | 191 |
| CC_EXT (QSFP) | 192–222 | 223 |
| CMIS page checksums | per page | last byte of the page |
All are simple 8-bit sums. CodingBox recalculates them automatically on every write — a hand-edited dump with a stale checksum is rejected by most hosts (EEPROM recoding).
Protocol-level view of how these bytes are reached — addresses, paging, banks, timing: Two-wire interface. Which bytes each checksum covers and how to compute them: Checksums.