CMIS: نچلے صفحے کا رجسٹر میپ
ہماری ٹیم ترجمے پر کام کر رہی ہے۔ یہ مضمون عارضی طور پر اردو میں دستیاب نہیں ہے، اس لیے اسے انگریزی میں دکھایا جا رہا ہے۔
The lower 128 bytes of a CMIS module (QSFP-DD, OSFP, QSFP112, SFP-DD with CMIS…) are always visible and carry the module-level runtime interface: identifier and CMIS version, module state, flags and masks, module monitors, global controls, CDB status, media type, the first eight application descriptors, password entry and the bank/page selectors. This page lists them byte by byte and bit by bit, compiled against CMIS 5.x with 4.x differences noted. Narrative: CMIS; upper pages in CMIS upper pages map; per-lane pages in CMIS lane pages map.
Legend: rsvd = reserved · custom = vendor specific · flags are latched, cleared on read; a mask bit = 1 suppresses the flag's contribution to IntL.
Identification and state — bytes 0–7
| Byte | Field | Bits / values |
|---|
| 0 | Identifier | SFF-8024 Table 4-1: 18h QSFP-DD · 19h OSFP · 1Eh QSFP+/28/56 with CMIS · 1Fh SFP-DD with CMIS · 20h SFP+ with CMIS (SFP112) · 21h OSFP-XD |
| 1 | CMIS revision | 7–4 major · 3–0 minor: 30h = 3.0 · 40h = 4.0 · 41h = 4.1 · 50h = 5.0 · 51h–53h = 5.1–5.3 |
| 2 | Memory characteristics | 7 MemoryModel (1 = flat, no paging) · 6 SteppedConfigOnly (1 = data-path config must be applied lane by lane) · 5–4 rsvd · 3–2 MciMaxSpeed: 00 = 400 kHz · 01 = 1 MHz · 1–0 rsvd |
| 3 | Module state | 7–4 rsvd · 3–1 ModuleState: 001 ModuleLowPwr · 010 ModulePwrUp · 011 ModuleReady · 100 ModulePwrDn · 101 ModuleFault · 0 InterruptDeasserted (1 = no interrupt pending) |
| 4 | Bank 0 flag summary | one bit per flag group present in bank 0 lane pages (data-path state changed, Tx/Rx flags, alarms) — read to know which bank to inspect |
| 5 | Bank 1 flag summary | as byte 4 for lanes 9–16 |
| 6 | Bank 2 flag summary | lanes 17–24 |
| 7 | Bank 3 flag summary | lanes 25–32 |
Module flags — bytes 8–11
| Byte | Field | Bits |
|---|
| 8 | Module-level flags | 7–5 rsvd · 4 CdbCmdComplete2 · 3 CdbCmdComplete1 · 2 DataPathFirmwareFault · 1 ModuleFirmwareFault · 0 ModuleStateChanged |
| 9 | Temperature / Vcc flags | 7 Vcc low warning · 6 Vcc high warning · 5 Vcc low alarm · 4 Vcc high alarm · 3 temp low warning · 2 temp high warning · 1 temp low alarm · 0 temp high alarm |
| 10 | Aux1 / Aux2 flags | 7 Aux2 low warning · 6 Aux2 high warning · 5 Aux2 low alarm · 4 Aux2 high alarm · 3 Aux1 low warning · 2 Aux1 high warning · 1 Aux1 low alarm · 0 Aux1 high alarm |
| 11 | Aux3 / custom flags | 7–4 custom monitor low warning / high warning / low alarm / high alarm · 3 Aux3 low warning · 2 Aux3 high warning · 1 Aux3 low alarm · 0 Aux3 high alarm |
| 12–13 | rsvd | — |
Module monitors — bytes 14–25
| Bytes | Monitor | Format |
|---|
| 14–15 | Temperature | signed 16-bit, 1/256 °C |
| 16–17 | Vcc | unsigned 16-bit, 100 µV |
| 18–19 | Aux1 | TEC current (signed, % of max ×100/32767) or laser temperature (1/256 °C) — type advertised in page 01h |
| 20–21 | Aux2 | laser temperature or TEC current |
| 22–23 | Aux3 | laser temperature or additional supply voltage (100 µV) |
| 24–25 | Custom monitor | vendor defined |
Global controls and masks — bytes 26–36
| Byte | Field | Bits |
|---|
| 26 | Module global controls | CMIS 5.x: 7 rsvd · 6 LowPwrAllowRequestHW (1 = the LPMode pin may request low power) · 5 SquelchMethodSelect (0 = OMA squelch, 1 = Pave) · 4 LowPwrRequestSW (1 = request low power) · 3 SoftwareReset · 2–0 rsvd · 4.x: 6 = LowPwr (software low-power request) · 4 = ForceLowPwr · 5 and 3 as above |
| 27 | Module flag masks | masks for byte 8 (same bit positions) |
| 28 | Temperature / Vcc masks | masks for byte 9 |
| 29 | Aux1 / Aux2 masks | masks for byte 10 |
| 30 | Aux3 / custom masks | masks for byte 11 |
| 31–36 | rsvd | — |
CDB status and firmware — bytes 37–41
| Byte | Field | Bits / values |
|---|
| 37 | CdbStatus1 (command block 1) | 7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: while busy — 01h capturing command, 02h checking, 03h executing; on success — 01h success, 02h no response? ; on failure — 01h unknown command, 02h parameter out of range, 03h length error, 04h checksum error, 05h password error, 06h not enabled, 07h abort? … (see CMIS Table 8-20) |
| 38 | CdbStatus2 (command block 2) | same layout |
| 39 | Module active firmware — major | running image version |
| 40 | Module active firmware — minor | — |
| 41 | ModuleFaultCause | 00h no fault · 01h TEC runaway · 02h data memory corrupted · 03h program memory corrupted · 04h–1Fh rsvd · 20h–FFh custom |
| 42–63 | rsvd | — |
| 64–84 | rsvd / custom | per revision |
| Byte | Field | Contents |
|---|
| 85 | MediaType | 00h undefined · 01h MMF (SFF-8024 Table 4-6) · 02h SMF (4-7) · 03h passive copper (4-8) · 04h active cable (4-9) · 05h BASE-T (4-10) · 06h–3Fh rsvd · 40h–8Fh custom |
| 86–89 | Application descriptor 1 | byte 86 HostInterfaceID (SFF-8024 Table 4-5) · 87 MediaInterfaceID (table per byte 85) · 88 bits 7–4 HostLaneCount, 3–0 MediaLaneCount · 89 HostLaneAssignmentOptions — bit n = 1: lane n+1 may be the first lane of this application's data path |
| 90–93 | Application descriptor 2 | same layout |
| 94–97 | Application descriptor 3 | — |
| 98–101 | Application descriptor 4 | — |
| 102–105 | Application descriptor 5 | — |
| 106–109 | Application descriptor 6 | — |
| 110–113 | Application descriptor 7 | — |
| 114–117 | Application descriptor 8 | — |
An FFh in a descriptor's first byte terminates the list. Descriptors 9–15 continue on page 01h bytes 223–250; their media-lane assignment options are on page 01h 176–190. Example: 12 1C 84 01 = 400GAUI-8 C2M ↔ 400GBASE-DR4, 8 host lanes / 4 media lanes, starting on host lane 1; 0E 14 21 55 = 100GAUI-2 ↔ 100GBASE-DR, 2/1 lanes, may start on lanes 1, 3, 5, 7 (4 × 100G breakout).
Passwords and selectors — bytes 118–127
| Byte | Field | Contents |
|---|
| 118–121 | Password change entry | vendor defined |
| 122–125 | Password entry | vendor defined — Write-protection types |
| 126 | BankSelect | 00h bank 0 (lanes 1–8) · 01h bank 1 (9–16) · 02h bank 2 · 03h bank 3; applies to banked pages 10h–3Fh |
| 127 | PageSelect | 00h identity · 01h advertising · 02h thresholds · 04h laser capabilities · 10h lane control · 11h lane status · 12h tunable control · 13h–14h diagnostics · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… custom |
Reading a QSFP-DD lower page in practice
- Byte 0 = 18h, byte 1 = 50h → QSFP-DD, CMIS 5.0; byte 2 bit 7 = 0 → paged memory.
- Byte 3 = 03h → ModuleLowPwr (001 in bits 3–1, interrupt deasserted) — normal right after insertion; 07h → ModuleReady.
- Byte 85 = 02h → SMF media table; bytes 86–89 → the first application (e.g. DR4).
- Bytes 8–11 → any module flag set? Read twice to clear history.
- Bytes 14–17 → temperature and Vcc.
- To leave low power in 5.x: clear byte 26 bit 4 (LowPwrRequestSW) and ensure the LPMode pin is low or bit 6 is 0; then wait for byte 3 to reach 07h.