Карта регистров CMIS: нижняя страница
Нижние 128 байт CMIS-модуля (QSFP-DD, OSFP, QSFP112, SFP-DD с CMIS…) видны всегда и несут интерфейс времени работы уровня модуля: идентификатор и версию CMIS, состояние модуля, флаги и маски, мониторы модуля, глобальное управление, статус CDB, тип среды, первые восемь дескрипторов применений, ввод пароля и селекторы банка/страницы. Здесь они перечислены побайтно и побитно по CMIS 5.x с отмеченными отличиями 4.x. Пояснения: CMIS; верхние страницы — в Карте верхних страниц CMIS; поканальные — в Карте канальных страниц CMIS.
Обозначения: резерв = зарезервировано · вендор = вендорское · флаги защёлкиваются, сбрасываются чтением; бит маски = 1 подавляет вклад флага в IntL.
Идентификация и состояние — байты 0–7
| Байт | Поле | Биты / значения |
|---|
| 0 | Идентификатор | SFF-8024 Table 4-1: 18h QSFP-DD · 19h OSFP · 1Eh QSFP+/28/56 с CMIS · 1Fh SFP-DD с CMIS · 20h SFP+ с CMIS (SFP112) · 21h OSFP-XD |
| 1 | Ревизия CMIS | 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 | Характеристики памяти | 7 MemoryModel (1 = плоская, без страниц) · 6 SteppedConfigOnly (1 = конфигурацию тракта применять по одному каналу) · 5–4 резерв · 3–2 MciMaxSpeed: 00 = 400 кГц · 01 = 1 МГц · 1–0 резерв |
| 3 | Состояние модуля | 7–4 резерв · 3–1 ModuleState: 001 ModuleLowPwr · 010 ModulePwrUp · 011 ModuleReady · 100 ModulePwrDn · 101 ModuleFault · 0 InterruptDeasserted (1 = прерывание не ожидает) |
| 4 | Сводка флагов банка 0 | по биту на группу флагов в канальных страницах банка 0 (смена состояния тракта, флаги Tx/Rx, аварии) — читать, чтобы знать, какой банк смотреть |
| 5 | Сводка флагов банка 1 | как байт 4 для каналов 9–16 |
| 6 | Сводка флагов банка 2 | каналы 17–24 |
| 7 | Сводка флагов банка 3 | каналы 25–32 |
Флаги модуля — байты 8–11
| Байт | Поле | Биты |
|---|
| 8 | Флаги уровня модуля | 7–5 резерв · 4 CdbCmdComplete2 · 3 CdbCmdComplete1 · 2 DataPathFirmwareFault · 1 ModuleFirmwareFault · 0 ModuleStateChanged |
| 9 | Флаги температуры / Vcc | 7 Vcc нижнее предупреждение · 6 Vcc верхнее предупреждение · 5 Vcc нижняя авария · 4 Vcc верхняя авария · 3 температура нижнее предупреждение · 2 верхнее предупреждение · 1 нижняя авария · 0 верхняя авария |
| 10 | Флаги Aux1 / Aux2 | 7 Aux2 нижнее предупреждение · 6 Aux2 верхнее предупреждение · 5 Aux2 нижняя авария · 4 Aux2 верхняя авария · 3 Aux1 нижнее предупреждение · 2 Aux1 верхнее предупреждение · 1 Aux1 нижняя авария · 0 Aux1 верхняя авария |
| 11 | Флаги Aux3 / пользовательского | 7–4 пользовательский монитор: нижнее предупреждение / верхнее предупреждение / нижняя авария / верхняя авария · 3 Aux3 нижнее предупреждение · 2 Aux3 верхнее предупреждение · 1 Aux3 нижняя авария · 0 Aux3 верхняя авария |
| 12–13 | резерв | — |
Мониторы модуля — байты 14–25
| Байты | Монитор | Формат |
|---|
| 14–15 | Температура | знаковое 16 бит, 1/256 °C |
| 16–17 | Vcc | беззнаковое 16 бит, 100 мкВ |
| 18–19 | Aux1 | ток TEC (знаковый, % от максимума ×100/32767) или температура лазера (1/256 °C) — тип объявлен на странице 01h |
| 20–21 | Aux2 | температура лазера или ток TEC |
| 22–23 | Aux3 | температура лазера или дополнительное напряжение питания (100 мкВ) |
| 24–25 | Пользовательский монитор | определяется вендором |
Глобальное управление и маски — байты 26–36
| Байт | Поле | Биты |
|---|
| 26 | Глобальное управление модулем | CMIS 5.x: 7 резерв · 6 LowPwrAllowRequestHW (1 = пин LPMode может запрашивать низкую мощность) · 5 SquelchMethodSelect (0 = squelch по OMA, 1 = по Pave) · 4 LowPwrRequestSW (1 = запрос низкой мощности) · 3 SoftwareReset · 2–0 резерв · 4.x: 6 = LowPwr (программный запрос низкой мощности) · 4 = ForceLowPwr · 5 и 3 как выше |
| 27 | Маски флагов модуля | маски для байта 8 (те же позиции битов) |
| 28 | Маски температуры / Vcc | маски для байта 9 |
| 29 | Маски Aux1 / Aux2 | маски для байта 10 |
| 30 | Маски Aux3 / пользовательского | маски для байта 11 |
| 31–36 | резерв | — |
Статус CDB и прошивка — байты 37–41
| Байт | Поле | Биты / значения |
|---|
| 37 | CdbStatus1 (командный блок 1) | 7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: пока занято — 01h захват команды, 02h проверка, 03h исполнение; при успехе — 01h успех; при отказе — 01h неизвестная команда, 02h параметр вне диапазона, 03h ошибка длины, 04h ошибка контрольной суммы, 05h ошибка пароля, 06h не разрешено … (см. CMIS Table 8-20) |
| 38 | CdbStatus2 (командный блок 2) | та же раскладка |
| 39 | Активная прошивка модуля — major | версия работающего образа |
| 40 | Активная прошивка модуля — minor | — |
| 41 | ModuleFaultCause | 00h нет отказа · 01h разгон TEC · 02h повреждена память данных · 03h повреждена память программы · 04h–1Fh резерв · 20h–FFh вендорские |
| 42–63 | резерв | — |
| 64–84 | резерв / вендор | по ревизии |
Тип среды и применения — байты 85–117
| Байт | Поле | Содержимое |
|---|
| 85 | MediaType | 00h не определён · 01h MMF (SFF-8024 Table 4-6) · 02h SMF (4-7) · 03h пассивная медь (4-8) · 04h активный кабель (4-9) · 05h BASE-T (4-10) · 06h–3Fh резерв · 40h–8Fh вендорские |
| 86–89 | Дескриптор применения 1 | байт 86 HostInterfaceID (SFF-8024 Table 4-5) · 87 MediaInterfaceID (таблица по байту 85) · 88 биты 7–4 HostLaneCount, 3–0 MediaLaneCount · 89 HostLaneAssignmentOptions — бит n = 1: канал n+1 может быть первым каналом тракта этого применения |
| 90–93 | Дескриптор применения 2 | та же раскладка |
| 94–97 | Дескриптор применения 3 | — |
| 98–101 | Дескриптор применения 4 | — |
| 102–105 | Дескриптор применения 5 | — |
| 106–109 | Дескриптор применения 6 | — |
| 110–113 | Дескриптор применения 7 | — |
| 114–117 | Дескриптор применения 8 | — |
FFh в первом байте дескриптора завершает список. Дескрипторы 9–15 продолжаются на странице 01h, байты 223–250; варианты назначения медиа-каналов для них — на странице 01h 176–190. Пример: 12 1C 84 01 = 400GAUI-8 C2M ↔ 400GBASE-DR4, 8 каналов хоста / 4 канала среды, начиная с канала хоста 1; 0E 14 21 55 = 100GAUI-2 ↔ 100GBASE-DR, 2/1 канала, может начинаться на каналах 1, 3, 5, 7 (breakout 4 × 100G).
Пароли и селекторы — байты 118–127
| Байт | Поле | Содержимое |
|---|
| 118–121 | Ввод смены пароля | определяется вендором |
| 122–125 | Ввод пароля | определяется вендором — Типы защиты от записи |
| 126 | BankSelect | 00h банк 0 (каналы 1–8) · 01h банк 1 (9–16) · 02h банк 2 · 03h банк 3; действует для банковых страниц 10h–3Fh |
| 127 | PageSelect | 00h идентификация · 01h объявления · 02h пороги · 04h возможности лазера · 10h управление каналами · 11h состояние каналов · 12h управление перестройкой · 13h–14h диагностика · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… вендорские |
Чтение нижней страницы QSFP-DD на практике
- Байт 0 = 18h, байт 1 = 50h → QSFP-DD, CMIS 5.0; байт 2 бит 7 = 0 → страничная память.
- Байт 3 = 03h → ModuleLowPwr (001 в битах 3–1, прерывание снято) — норма сразу после вставки; 07h → ModuleReady.
- Байт 85 = 02h → таблица среды SMF; байты 86–89 → первое применение (например, DR4).
- Байты 8–11 → установлен ли какой-то флаг модуля? Читать дважды, чтобы сбросить историю.
- Байты 14–17 → температура и Vcc.
- Чтобы выйти из низкой мощности в 5.x: сбросить бит 4 байта 26 (LowPwrRequestSW) и убедиться, что пин LPMode низкий или бит 6 = 0; затем ждать, пока байт 3 не станет 07h.
Связанные карты