CMIS: Registerkarte, untere Seite
Die unteren 128 Bytes eines CMIS-Moduls (QSFP-DD, OSFP, QSFP112, SFP-DD mit CMIS…) sind immer sichtbar und tragen die Laufzeit-Schnittstelle auf Modulebene: Identifier und CMIS-Version, Modulzustand, Flags und Masken, Modulmonitore, globale Steuerungen, CDB-Status, Medientyp, die ersten acht Applikationsdeskriptoren, Passworteingabe und die Bank-/Page-Selektoren. Diese Seite listet sie Byte für Byte und Bit für Bit, zusammengestellt anhand von CMIS 5.x mit vermerkten 4.x-Unterschieden. Erläuterung: CMIS; obere Pages in CMIS-Upper-Pages-Map; Pages pro Lane in CMIS-Lane-Pages-Map.
Legende: rsvd = reserviert · custom = herstellerspezifisch · Flags sind gelatcht, werden beim Lesen gelöscht; ein Maskenbit = 1 unterdrückt den Beitrag des Flags zu IntL.
Identifikation und Zustand — Byte 0–7
| Byte | Feld | Bits / Werte |
|---|
| 0 | Identifier | SFF-8024 Table 4-1: 18h QSFP-DD · 19h OSFP · 1Eh QSFP+/28/56 mit CMIS · 1Fh SFP-DD mit CMIS · 20h SFP+ mit 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 | Speichereigenschaften | 7 MemoryModel (1 = flach, kein Paging) · 6 SteppedConfigOnly (1 = Data-Path-Konfiguration muss Lane für Lane angewendet werden) · 5–4 rsvd · 3–2 MciMaxSpeed: 00 = 400 kHz · 01 = 1 MHz · 1–0 rsvd |
| 3 | Modulzustand | 7–4 rsvd · 3–1 ModuleState: 001 ModuleLowPwr · 010 ModulePwrUp · 011 ModuleReady · 100 ModulePwrDn · 101 ModuleFault · 0 InterruptDeasserted (1 = kein Interrupt ausstehend) |
| 4 | Bank-0-Flag-Zusammenfassung | ein Bit pro Flag-Gruppe, die in den Lane-Pages von Bank 0 vorhanden ist (Data-Path-Zustand geändert, Tx-/Rx-Flags, Alarme) — lesen, um zu wissen, welche Bank zu prüfen ist |
| 5 | Bank-1-Flag-Zusammenfassung | wie Byte 4 für Lanes 9–16 |
| 6 | Bank-2-Flag-Zusammenfassung | Lanes 17–24 |
| 7 | Bank-3-Flag-Zusammenfassung | Lanes 25–32 |
Modul-Flags — Byte 8–11
| Byte | Feld | Bits |
|---|
| 8 | Flags auf Modulebene | 7–5 rsvd · 4 CdbCmdComplete2 · 3 CdbCmdComplete1 · 2 DataPathFirmwareFault · 1 ModuleFirmwareFault · 0 ModuleStateChanged |
| 9 | Temperatur-/Vcc-Flags | 7 Vcc Low-Warnung · 6 Vcc High-Warnung · 5 Vcc Low-Alarm · 4 Vcc High-Alarm · 3 Temp Low-Warnung · 2 Temp High-Warnung · 1 Temp Low-Alarm · 0 Temp High-Alarm |
| 10 | Aux1-/Aux2-Flags | 7 Aux2 Low-Warnung · 6 Aux2 High-Warnung · 5 Aux2 Low-Alarm · 4 Aux2 High-Alarm · 3 Aux1 Low-Warnung · 2 Aux1 High-Warnung · 1 Aux1 Low-Alarm · 0 Aux1 High-Alarm |
| 11 | Aux3-/Custom-Flags | 7–4 Custom-Monitor Low-Warnung / High-Warnung / Low-Alarm / High-Alarm · 3 Aux3 Low-Warnung · 2 Aux3 High-Warnung · 1 Aux3 Low-Alarm · 0 Aux3 High-Alarm |
| 12–13 | rsvd | — |
Modulmonitore — Byte 14–25
| Bytes | Messwert | Format |
|---|
| 14–15 | Temperatur | vorzeichenbehaftet, 16-Bit, 1/256 °C |
| 16–17 | Vcc | vorzeichenlos, 16-Bit, 100 µV |
| 18–19 | Aux1 | TEC-Strom (vorzeichenbehaftet, % des Max ×100/32767) oder Lasertemperatur (1/256 °C) — Typ wird auf Page 01h beworben |
| 20–21 | Aux2 | Lasertemperatur oder TEC-Strom |
| 22–23 | Aux3 | Lasertemperatur oder zusätzliche Versorgungsspannung (100 µV) |
| 24–25 | Custom-Monitor | herstellerdefiniert |
Globale Steuerungen und Masken — Byte 26–36
| Byte | Feld | Bits |
|---|
| 26 | Globale Modulsteuerungen | CMIS 5.x: 7 rsvd · 6 LowPwrAllowRequestHW (1 = der LPMode-Pin darf Low Power anfordern) · 5 SquelchMethodSelect (0 = OMA-Squelch, 1 = Pave) · 4 LowPwrRequestSW (1 = Low Power anfordern) · 3 SoftwareReset · 2–0 rsvd · 4.x: 6 = LowPwr (Software-Low-Power-Anforderung) · 4 = ForceLowPwr · 5 und 3 wie oben |
| 27 | Modul-Flag-Masken | Masken für Byte 8 (gleiche Bitpositionen) |
| 28 | Temperatur-/Vcc-Masken | Masken für Byte 9 |
| 29 | Aux1-/Aux2-Masken | Masken für Byte 10 |
| 30 | Aux3-/Custom-Masken | Masken für Byte 11 |
| 31–36 | rsvd | — |
CDB-Status und Firmware — Byte 37–41
| Byte | Feld | Bits / Werte |
|---|
| 37 | CdbStatus1 (Command Block 1) | 7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: während busy — 01h Kommando wird erfasst, 02h wird geprüft, 03h wird ausgeführt; bei Erfolg — 01h Erfolg, 02h keine Antwort? ; bei Fehler — 01h unbekanntes Kommando, 02h Parameter außerhalb des Bereichs, 03h Längenfehler, 04h Prüfsummenfehler, 05h Passwortfehler, 06h nicht aktiviert, 07h Abbruch? … (siehe CMIS Table 8-20) |
| 38 | CdbStatus2 (Command Block 2) | gleiches Layout |
| 39 | Aktive Modul-Firmware — Major | laufende Image-Version |
| 40 | Aktive Modul-Firmware — Minor | — |
| 41 | ModuleFaultCause | 00h kein Fehler · 01h TEC-Runaway · 02h Datenspeicher beschädigt · 03h Programmspeicher beschädigt · 04h–1Fh rsvd · 20h–FFh custom |
| 42–63 | rsvd | — |
| 64–84 | rsvd / custom | je Revision |
Medientyp und Applikationen — Byte 85–117
| Byte | Feld | Inhalt |
|---|
| 85 | MediaType | 00h undefiniert · 01h MMF (SFF-8024 Table 4-6) · 02h SMF (4-7) · 03h passives Kupfer (4-8) · 04h aktives Kabel (4-9) · 05h BASE-T (4-10) · 06h–3Fh rsvd · 40h–8Fh custom |
| 86–89 | Applikationsdeskriptor 1 | Byte 86 HostInterfaceID (SFF-8024 Table 4-5) · 87 MediaInterfaceID (Tabelle je nach Byte 85) · 88 Bit 7–4 HostLaneCount, 3–0 MediaLaneCount · 89 HostLaneAssignmentOptions — Bit n = 1: Lane n+1 darf die erste Lane des Data Path dieser Applikation sein |
| 90–93 | Applikationsdeskriptor 2 | gleiches Layout |
| 94–97 | Applikationsdeskriptor 3 | — |
| 98–101 | Applikationsdeskriptor 4 | — |
| 102–105 | Applikationsdeskriptor 5 | — |
| 106–109 | Applikationsdeskriptor 6 | — |
| 110–113 | Applikationsdeskriptor 7 | — |
| 114–117 | Applikationsdeskriptor 8 | — |
Ein FFh im ersten Byte eines Deskriptors beendet die Liste. Deskriptoren 9–15 setzen sich auf Page 01h Byte 223–250 fort; ihre Media-Lane-Zuordnungsoptionen stehen auf Page 01h 176–190. Beispiel: 12 1C 84 01 = 400GAUI-8 C2M ↔ 400GBASE-DR4, 8 Host-Lanes / 4 Medien-Lanes, beginnend auf Host-Lane 1; 0E 14 21 55 = 100GAUI-2 ↔ 100GBASE-DR, 2/1 Lanes, darf auf Lane 1, 3, 5, 7 beginnen (4 × 100G-Breakout).
Passwörter und Selektoren — Byte 118–127
| Byte | Feld | Inhalt |
|---|
| 118–121 | Passwortänderungs-Eingabe | herstellerdefiniert |
| 122–125 | Passworteingabe | herstellerdefiniert — Schreibschutzarten |
| 126 | BankSelect | 00h Bank 0 (Lanes 1–8) · 01h Bank 1 (9–16) · 02h Bank 2 · 03h Bank 3; gilt für gebankte Pages 10h–3Fh |
| 127 | PageSelect | 00h Identität · 01h Advertising · 02h Schwellwerte · 04h Laserfähigkeiten · 10h Lane-Steuerung · 11h Lane-Status · 12h Tunable-Steuerung · 13h–14h Diagnose · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… custom |
Eine QSFP-DD-Lower-Page in der Praxis lesen
- Byte 0 = 18h, Byte 1 = 50h → QSFP-DD, CMIS 5.0; Byte 2 Bit 7 = 0 → gepagter Speicher.
- Byte 3 = 03h → ModuleLowPwr (001 in Bit 3–1, Interrupt deasserted) — normal direkt nach dem Einstecken; 07h → ModuleReady.
- Byte 85 = 02h → SMF-Medientabelle; Byte 86–89 → die erste Applikation (z. B. DR4).
- Byte 8–11 → ist ein Modul-Flag gesetzt? Zweimal lesen, um die Historie zu löschen.
- Byte 14–17 → Temperatur und Vcc.
- Um Low Power in 5.x zu verlassen: Byte 26 Bit 4 (LowPwrRequestSW) löschen und sicherstellen, dass der LPMode-Pin low ist oder Bit 6 0 ist; dann warten, bis Byte 3 07h erreicht.
Verwandte Karten