Карта регистров CMIS: канальные страницы (10h, 11h, VDM, CDB)
Всё поканальное в CMIS-модуле живёт на банковых страницах: банк b (нижний байт 126) покрывает каналы 8b+1 … 8b+8. Страница 10h — куда пишет хост: инициализация тракта, Tx disable, полярность, squelch, эквализация и staged control sets, выбирающие применения; страница 11h — что он читает обратно: состояния трактов, поканальные флаги, мониторы, статус конфигурации и active control set. Страницы 20h–2Fh несут VDM, 9Fh — почтовый ящик CDB. Здесь перечислены ключевые байты по CMIS 5.x (позиции части полей целостности сигнала различаются между 4.x и 5.x; они даны диапазонами). Пояснения: CMIS.
Обозначения: в поканальных байтах бит n−1 = канал n (бит 0 = канал 1 … бит 7 = канал 8); ниббловые поля используют биты 7–4 для нечётного и 3–0 для чётного канала каждой пары, если не сказано иное · резерв = зарезервировано.
Страница 10h — управление каналами (хост пишет)
| Байт | Поле | Биты / содержимое |
|---|---|---|
| 128 | DPDeinitLane | бит на канал: 1 = деинициализировать (перевести тракт канала в DPDeactivated) |
| 129 | резерв | — |
| 130 | OutputDisableTx | бит на канал: 1 = выход Tx (лазер) выключен |
| 131 | PolarityFlipTx | бит на канал: инвертировать электрический вход Tx |
| 132 | SquelchDisableTx | бит на канал: 1 = отключить автоматический squelch Tx |
| 133 | ForceSquelchTx | бит на канал: 1 = принудительный squelch Tx |
| 134 | резерв | — |
| 135 | AdaptiveInputEqEnableTx | бит на канал: 1 = адаптивная входная эквализация со стороны хоста |
| 136 | AdaptiveInputEqRecallTx | бит на канал: вызвать сохранённую настройку EQ (4.x: заморозить) |
| 137 | резерв | — |
| 138–141 | FixedInputEqTargetTx | ниббл на канал (138: каналы 1–2 … 141: каналы 7–8): код фиксированной входной EQ 0–15 |
| 142 | резерв | — |
| 143 | ApplyDPInitLane | бит на канал: 1 = применить Staged Control Set 0 и запустить DPInit |
| 144 | ApplyImmediateLane | бит на канал: применить SCS0 без переинициализации тракта |
| 145–152 | Staged Control Set 0 — конфигурация тракта | по байту на канал (145 = канал 1 … 152 = канал 8): биты 7–4 AppSelCode (1–15 = индекс дескриптора, 0 = нет) · 3–1 DataPathID (первый канал хоста тракта − 1) · 0 ExplicitControl (1 = использовать настройки SI ниже вместо умолчаний применения) |
| 153 | SCS0 AdaptiveInputEqEnableTx | бит на канал |
| 154 | SCS0 AdaptiveInputEqRecallTx | бит на канал |
| 155 | резерв | — |
| 156–159 | SCS0 FixedInputEqTargetTx | ниббл на канал |
| 160 | SCS0 CDREnableTx | бит на канал: 1 = CDR Tx включён, 0 = обход |
| 161 | SCS0 CDREnableRx | бит на канал |
| 162–165 | SCS0 OutputEqPreCursorTargetRx | ниббл на канал |
| 166–169 | SCS0 OutputEqPostCursorTargetRx | ниббл на канал |
| 170–173 | SCS0 OutputAmplitudeTargetRx | ниббл на канал |
| 174–177 | резерв | — |
| 178–210 | Staged Control Set 1 | раскладка как у 145–177 (178–185 конфигурация тракта, 186–210 цели SI) |
| 211–255 | Управление выходами Rx и маски | OutputDisableRx, PolarityFlipRx, SquelchDisableRx по каналам; маски флагов страницы 11h (позиции байтов по ревизии) |
Процесс выбора: записать 145–152 → выставить 143 для каналов → опрашивать страницу 11h 202–205 на ConfigStatus → читать 128–131 на состояние тракта — CMIS, Скорость и режимы.
Страница 11h — состояние каналов (хост читает)
| Байт | Поле | Биты / содержимое |
|---|---|---|
| 128 | DPStateHostLane 1–2 | 3–0 состояние канала 1 · 7–4 состояние канала 2 (таблица кодов ниже) |
| 129 | DPStateHostLane 3–4 | как выше |
| 130 | DPStateHostLane 5–6 | — |
| 131 | DPStateHostLane 7–8 | — |
| 132–133 | резерв | — |
| 134 | DPStateChangedFlag | бит на канал; защёлкивается |
| 135 | TxFaultFlag | бит на канал |
| 136 | TxLOSFlag | бит на канал (LOS входа со стороны хоста) |
| 137 | TxCDRLOLFlag | бит на канал |
| 138 | TxAdaptiveInputEqFailFlag | бит на канал |
| 139 | Мощность Tx верхняя авария | бит на канал |
| 140 | Мощность Tx нижняя авария | — |
| 141 | Мощность Tx верхнее предупреждение | — |
| 142 | Мощность Tx нижнее предупреждение | — |
| 143 | Ток Tx верхняя авария | — |
| 144 | Ток Tx нижняя авария | — |
| 145 | Ток Tx верхнее предупреждение | — |
| 146 | Ток Tx нижнее предупреждение | — |
| 147 | RxLOSFlag | бит на канал (LOS со стороны среды) |
| 148 | RxCDRLOLFlag | бит на канал |
| 149 | Мощность Rx верхняя авария | — |
| 150 | Мощность Rx нижняя авария | — |
| 151 | Мощность Rx верхнее предупреждение | — |
| 152 | Мощность Rx нижнее предупреждение | — |
| 153 | OutputStatusRx | бит на канал: 1 = выход Rx включён/валиден |
| 154–169 | Мониторы мощности Tx | по 2 байта на канал (154–155 канал 1 … 168–169 канал 8), беззнаковые, 0,1 мкВт |
| 170–185 | Мониторы тока Tx | по 2 байта на канал, 2 мкА × множитель |
| 186–201 | Мониторы мощности Rx | по 2 байта на канал, 0,1 мкВт |
| 202 | ConfigStatus каналов 1–2 | 3–0 канал 1 · 7–4 канал 2 (таблица кодов ниже) |
| 203 | ConfigStatus каналов 3–4 | — |
| 204 | ConfigStatus каналов 5–6 | — |
| 205 | ConfigStatus каналов 7–8 | — |
| 206–213 | Active Control Set — конфигурация тракта | по байту на канал, раскладка как у 145–152 страницы 10h: действующая конфигурация |
| 214–234 | Active Control Set — настройки SI | включение/вызов адаптивной EQ, фиксированная EQ, CDR Tx/Rx, пре-/посткурсор Rx, амплитуда Rx — зеркало раскладки SCS |
| 235 | DPInitPending | бит на канал: 1 = подготовленная конфигурация ждёт ApplyDPInit |
| 236–255 | резерв / флаги по ревизии | — |
Коды состояния тракта (байты 128–131)
| Код | Состояние | Смысл |
|---|---|---|
| 1h | DPDeactivated | канал простаивает; Tx выключен |
| 2h | DPInit | инициализация с применённой конфигурацией |
| 3h | DPDeinit | разборка |
| 4h | DPActivated | Tx включён, данные идут |
| 5h | DPTxTurnOn | лазер включается |
| 6h | DPTxTurnOff | лазер выключается |
| 7h | DPInitialized | сконфигурирован, ждёт включения Tx |
| 0h, 8h–Fh | резерв | — |
Коды ConfigStatus (байты 202–205)
| Код | Статус | Смысл |
|---|---|---|
| 0h | ConfigUndefined | конфигурация ещё не применялась |
| 1h | ConfigSuccess | подготовленный набор принят и действует |
| 2h | ConfigRejected | общий отказ |
| 3h | ConfigRejectedInvalidAppSel | код AppSel не объявлен |
| 4h | ConfigRejectedInvalidDataPath | DataPathID недопустим для этого применения |
| 5h | ConfigRejectedInvalidSI | цель целостности сигнала вне диапазона |
| 6h | ConfigRejectedLaneInUse | канал уже часть другого активного тракта |
| 7h | ConfigRejectedPartialDataPath | сконфигурированы не все каналы тракта |
| 8h–Bh | резерв | — |
| Ch | ConfigInProgress | применяется |
| Dh–Fh | вендорские | — |
Страница 12h — управление перестраиваемым лазером (по каналам)
Установка номера канала, установка длины волны/частоты, смещение тонкой подстройки, статус перестройки и флаги по каналам, возможности — на странице 04h — Карты tunable.
Страницы 20h–2Fh — VDM (Versatile Diagnostics Monitoring)
| Страницы | Содержимое | Раскладка |
|---|---|---|
| 20h–23h | Дескрипторы | по 2 байта на наблюдаемую (128–255 → 64 на страницу, 256 всего): байт 0 биты 7–4 ID набора порогов, 3–0 канал (0 = уровень модуля); байт 1 тип наблюдаемой (1 возраст лазера · 2 ток TEC · 3 ошибка частоты лазера · 4 температура лазера · 5/6 eSNR среда/хост · 7/8 переходы уровней PAM4 среда/хост · 9–16 BER до FEC мин/макс/среднее/текущее среда/хост · 17–24 FERC мин/макс/среднее/текущее среда/хост · 128+ когерентный набор) |
| 24h–27h | Выборки | по 2 байта на наблюдаемую, тот же индекс, что у дескриптора; форматы U16 / S16 / F16 |
| 28h–2Bh | Пороги | по 8 байт на набор порогов: верхняя авария, нижняя авария, верхнее предупреждение, нижнее предупреждение |
| 2Ch–2Fh | Флаги и маски | флаги аварий/предупреждений по наблюдаемым (2Ch–2Dh) и маски (2Eh–2Fh) |
Формат отношений F16: биты 15–11 экспонента e, биты 10–0 мантисса m; значение = m × 10^(e − 24). Детали: VDM и метрики FEC.
Страница 9Fh — командный блок CDB
| Байты | Поле | Содержимое |
|---|---|---|
| 128–129 | CMD ID | идентификатор команды, старший байт первым (0000h запрос статуса · 0040h возможности модуля · 0041h возможности управления прошивкой · 0100h сведения о прошивке · 0101h начать загрузку прошивки · 0102h прервать · 0103h записать блок прошивки LPL · 0104h записать блок прошивки EPL · 0107h завершить загрузку · 0109h запустить образ · 010Ah зафиксировать образ) |
| 130–131 | Длина EPL | байт расширенной нагрузки на страницах A0h–AFh |
| 132 | Длина LPL | байт локальной нагрузки (0–120) |
| 133 | CdbChkCode | контрольная сумма по 128–132 и LPL: дополнение до единицы (Σ) mod 256 |
| 134 | Длина RPL | длина ответной нагрузки, записываемая модулем |
| 135 | RplChkCode | контрольная сумма ответа |
| 136–255 | LPL | локальная нагрузка (параметры команды / ответ) |
| A0h–AFh 128–255 | EPL | до 2048 байт расширенной нагрузки |
Запись байта 129 (младшего байта CMD ID) последним запускает исполнение; затем хост опрашивает нижние байты 37–38 (CdbStatus), пока не сбросится CdbIsBusy.
Связанные карты
- Карта нижней страницы CMIS — состояние модуля, флаги, применения.
- Карта верхних страниц CMIS — идентификация, объявления, пороги.
- Карта нижней страницы SFF-8636 — 4-канальный предшественник.