Mapa rejestrów CMIS: dolna strona
Dolne 128 bajtów modułu CMIS (QSFP-DD, OSFP, QSFP112, SFP-DD z CMIS…) są zawsze widoczne i niosą interfejs działania na poziomie modułu: identyfikator i wersję CMIS, stan modułu, flagi i maski, monitory modułu, sterowanie globalne, stan CDB, typ medium, pierwszych osiem deskryptorów aplikacji, wpis hasła oraz selektory banku/strony. Ta strona wymienia je bajt po bajcie i bit po bicie, zgodnie z CMIS 5.x, z odnotowanymi różnicami dla 4.x. Opis: CMIS; strony górne w mapie górnych stron CMIS; strony poszczególnych linii w mapie stron linii CMIS.
Legenda: rsvd = zarezerwowane · custom = specyficzne dla producenta · flagi są zatrzaskiwane, kasowane przy odczycie; bit maski = 1 tłumi wkład flagi do IntL.
Identyfikacja i stan — bajty 0–7
| Bajt | Pole | Bity / wartości |
|---|
| 0 | Identyfikator | SFF-8024, tabela 4-1: 18h QSFP-DD · 19h OSFP · 1Eh QSFP+/28/56 z CMIS · 1Fh SFP-DD z CMIS · 20h SFP+ z CMIS (SFP112) · 21h OSFP-XD |
| 1 | Rewizja CMIS | 7–4 główna · 3–0 pomocnicza: 30h = 3.0 · 40h = 4.0 · 41h = 4.1 · 50h = 5.0 · 51h–53h = 5.1–5.3 |
| 2 | Charakterystyki pamięci | 7 MemoryModel (1 = płaska, bez stronicowania) · 6 SteppedConfigOnly (1 = konfigurację ścieżki danych trzeba stosować linia po linii) · 5–4 rsvd · 3–2 MciMaxSpeed: 00 = 400 kHz · 01 = 1 MHz · 1–0 rsvd |
| 3 | Stan modułu | 7–4 rsvd · 3–1 ModuleState: 001 ModuleLowPwr · 010 ModulePwrUp · 011 ModuleReady · 100 ModulePwrDn · 101 ModuleFault · 0 InterruptDeasserted (1 = brak oczekującego przerwania) |
| 4 | Podsumowanie flag banku 0 | jeden bit na grupę flag obecną na stronach linii banku 0 (zmiana stanu ścieżki danych, flagi Tx/Rx, alarmy) — odczytaj, aby wiedzieć, który bank sprawdzić |
| 5 | Podsumowanie flag banku 1 | jak bajt 4, dla linii 9–16 |
| 6 | Podsumowanie flag banku 2 | linie 17–24 |
| 7 | Podsumowanie flag banku 3 | linie 25–32 |
Flagi modułu — bajty 8–11
| Bajt | Pole | Bity |
|---|
| 8 | Flagi na poziomie modułu | 7–5 rsvd · 4 CdbCmdComplete2 · 3 CdbCmdComplete1 · 2 DataPathFirmwareFault · 1 ModuleFirmwareFault · 0 ModuleStateChanged |
| 9 | Flagi temperatury / Vcc | 7 niskie ostrzeżenie Vcc · 6 wysokie ostrzeżenie Vcc · 5 niski alarm Vcc · 4 wysoki alarm Vcc · 3 niskie ostrzeżenie temperatury · 2 wysokie ostrzeżenie temperatury · 1 niski alarm temperatury · 0 wysoki alarm temperatury |
| 10 | Flagi Aux1 / Aux2 | 7 niskie ostrzeżenie Aux2 · 6 wysokie ostrzeżenie Aux2 · 5 niski alarm Aux2 · 4 wysoki alarm Aux2 · 3 niskie ostrzeżenie Aux1 · 2 wysokie ostrzeżenie Aux1 · 1 niski alarm Aux1 · 0 wysoki alarm Aux1 |
| 11 | Flagi Aux3 / custom | 7–4 niskie ostrzeżenie / wysokie ostrzeżenie / niski alarm / wysoki alarm monitora custom · 3 niskie ostrzeżenie Aux3 · 2 wysokie ostrzeżenie Aux3 · 1 niski alarm Aux3 · 0 wysoki alarm Aux3 |
| 12–13 | rsvd | — |
Monitory modułu — bajty 14–25
| Bajty | Wielkość mierzona | Format |
|---|
| 14–15 | Temperatura | 16-bitowa ze znakiem, 1/256 °C |
| 16–17 | Vcc | 16-bitowa bez znaku, 100 µV |
| 18–19 | Aux1 | prąd TEC (ze znakiem, % maksimum ×100/32767) albo temperatura lasera (1/256 °C) — typ zgłoszony na stronie 01h |
| 20–21 | Aux2 | temperatura lasera albo prąd TEC |
| 22–23 | Aux3 | temperatura lasera albo dodatkowe napięcie zasilania (100 µV) |
| 24–25 | Monitor custom | definiowany przez producenta |
Sterowanie globalne i maski — bajty 26–36
| Bajt | Pole | Bity |
|---|
| 26 | Sterowanie globalne modułu | CMIS 5.x: 7 rsvd · 6 LowPwrAllowRequestHW (1 = pin LPMode może żądać niskiej mocy) · 5 SquelchMethodSelect (0 = squelch OMA, 1 = Pave) · 4 LowPwrRequestSW (1 = żądanie niskiej mocy) · 3 SoftwareReset · 2–0 rsvd · 4.x: 6 = LowPwr (programowe żądanie niskiej mocy) · 4 = ForceLowPwr · 5 i 3 jak wyżej |
| 27 | Maski flag modułu | maski dla bajtu 8 (te same pozycje bitów) |
| 28 | Maski temperatury / Vcc | maski dla bajtu 9 |
| 29 | Maski Aux1 / Aux2 | maski dla bajtu 10 |
| 30 | Maski Aux3 / custom | maski dla bajtu 11 |
| 31–36 | rsvd | — |
Stan CDB i firmware — bajty 37–41
| Bajt | Pole | Bity / wartości |
|---|
| 37 | CdbStatus1 (blok poleceń 1) | 7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: podczas zajętości — 01h przechwytywanie polecenia, 02h sprawdzanie, 03h wykonywanie; przy sukcesie — 01h sukces, 02h brak odpowiedzi? ; przy niepowodzeniu — 01h nieznane polecenie, 02h parametr poza zakresem, 03h błąd długości, 04h błąd sumy kontrolnej, 05h błąd hasła, 06h niewłączone, 07h przerwane? … (zobacz CMIS, tabela 8-20) |
| 38 | CdbStatus2 (blok poleceń 2) | ten sam układ |
| 39 | Aktywny firmware modułu — główna | wersja działającego obrazu |
| 40 | Aktywny firmware modułu — pomocnicza | — |
| 41 | ModuleFaultCause | 00h brak usterki · 01h ucieczka TEC · 02h uszkodzona pamięć danych · 03h uszkodzona pamięć programu · 04h–1Fh rsvd · 20h–FFh custom |
| 42–63 | rsvd | — |
| 64–84 | rsvd / custom | zależnie od rewizji |
Typ medium i aplikacje — bajty 85–117
| Bajt | Pole | Zawartość |
|---|
| 85 | MediaType | 00h niezdefiniowany · 01h MMF (SFF-8024, tabela 4-6) · 02h SMF (4-7) · 03h miedź pasywna (4-8) · 04h kabel aktywny (4-9) · 05h BASE-T (4-10) · 06h–3Fh rsvd · 40h–8Fh custom |
| 86–89 | Deskryptor aplikacji 1 | bajt 86 HostInterfaceID (SFF-8024, tabela 4-5) · 87 MediaInterfaceID (tabela wg bajtu 85) · 88 bity 7–4 HostLaneCount, 3–0 MediaLaneCount · 89 HostLaneAssignmentOptions — bit n = 1: linia n+1 może być pierwszą linią ścieżki danych tej aplikacji |
| 90–93 | Deskryptor aplikacji 2 | ten sam układ |
| 94–97 | Deskryptor aplikacji 3 | — |
| 98–101 | Deskryptor aplikacji 4 | — |
| 102–105 | Deskryptor aplikacji 5 | — |
| 106–109 | Deskryptor aplikacji 6 | — |
| 110–113 | Deskryptor aplikacji 7 | — |
| 114–117 | Deskryptor aplikacji 8 | — |
FFh w pierwszym bajcie deskryptora kończy listę. Deskryptory 9–15 są kontynuowane na stronie 01h, bajty 223–250; ich opcje przypisania linii medium są na stronie 01h 176–190. Przykład: 12 1C 84 01 = 400GAUI-8 C2M ↔ 400GBASE-DR4, 8 linii hosta / 4 linie medium, start od linii hosta 1; 0E 14 21 55 = 100GAUI-2 ↔ 100GBASE-DR, 2/1 linii, może startować na liniach 1, 3, 5, 7 (breakout 4 × 100G).
Hasła i selektory — bajty 118–127
| Bajt | Pole | Zawartość |
|---|
| 118–121 | Wpis zmiany hasła | definiowany przez producenta |
| 122–125 | Wpis hasła | definiowany przez producenta — Rodzaje zabezpieczenia przed zapisem |
| 126 | BankSelect | 00h bank 0 (linie 1–8) · 01h bank 1 (9–16) · 02h bank 2 · 03h bank 3; dotyczy stron bankowanych 10h–3Fh |
| 127 | PageSelect | 00h dane identyfikacyjne · 01h zgłaszanie możliwości · 02h progi · 04h możliwości lasera · 10h sterowanie liniami · 11h stan linii · 12h sterowanie przestrajaniem · 13h–14h diagnostyka · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… custom |
Odczyt dolnej strony QSFP-DD w praktyce
- Bajt 0 = 18h, bajt 1 = 50h → QSFP-DD, CMIS 5.0; bajt 2 bit 7 = 0 → pamięć stronicowana.
- Bajt 3 = 03h → ModuleLowPwr (001 w bitach 3–1, przerwanie dezaktywowane) — normalne zaraz po włożeniu; 07h → ModuleReady.
- Bajt 85 = 02h → tabela medium SMF; bajty 86–89 → pierwsza aplikacja (np. DR4).
- Bajty 8–11 → czy ustawiona jest jakaś flaga modułu? Odczytaj dwukrotnie, aby wyczyścić historię.
- Bajty 14–17 → temperatura i Vcc.
- Aby opuścić tryb niskiej mocy w 5.x: wyczyść bajt 26 bit 4 (LowPwrRequestSW) i upewnij się, że pin LPMode jest niski albo bit 6 wynosi 0; następnie poczekaj, aż bajt 3 osiągnie 07h.
Powiązane mapy