Перекодировка EEPROM: пароли и механика · Типовые проблемы и решения · Оптические трансиверы и кабели · Документация · CodingBox
CodingBox Документация

Перекодировка EEPROM: пароли и механика

Ключевой инсайт многолетних инженерных дискуссий: совместимость трансивера — это не firmware, а строки идентификации в EEPROM, читаемые по I²C. Коммутатор отвергает модуль просто потому, что не узнаёт строку вендора. Один этот факт объясняет распространённую практику «прошиваем всё в Cisco — так работает почти везде» и весь рынок инструментов кодирования.

Где живут пароли

Запись в защищённые области памяти модуля требует 4-байтового пароля, вводимого по фиксированному адресу перед записью:

Тип модуляБлок памятиСмещение пароля
SFP / SFP+A2h (I²C-адрес 0x51)0x7B–0x7E
QSFP / XFPA0h0x7B

Часто упоминаемые пароли

ПарольПримечание
00 00 10 11Дефолт MSA — первое, что стоит попробовать
00 00 00 00, FF FF FF FFчасто встречающиеся дефолты
9B B0 3D FAвстречается на ряде модулей
4F 43 50 00ASCII «OCP»

QSFP-DD некоторых вендоров поставляются со своими фиксированными дефолтами, а отдельные модули на микропроцессоре используют переменный пароль, который меняется, — ловушка для тех, кто пытается перебирать.

Почему перебор — не выход

Пароль уровня производителя, закрывающий всю карту памяти, перебирается порядка 100+ дней; даже хостовый ASCII-пароль — до примерно трёх дней. Практический путь — база известных кодов и паролей, снятых с оригинальных модулей. Именно в ней, а не в I²C-железе (оно простое), реальная ценность инструмента кодирования.

Грабли самодельных программаторов

  • Дешёвые программаторы CH341A не считают контрольную сумму SFP. Запись образа без валидных CC_BASE/CC_EXT даёт модуль, который коммутатор отвергнет. Нужен инструмент с автоматическим пересчётом контрольных сумм.
  • Некоторые коммутаторы пишут только по адресу 0x50, поэтому до пароля по 0x51 с самого коммутатора не добраться — нужна полноценная плата-программатор.
  • Пин защиты записи EEPROM — часть заводов подтягивает WP к Vcc, и модуль в поле оказывается закрыт от записи.

Кейсы из практики

  • Модули, закодированные под одного вендора, не поднимали автосогласование на коммутаторе другого; перекодированные под строку вендора коммутатора — поднялись сразу.
  • Некоторые вендоры оптики намеренно поставляют некодированные модули, ожидая, что покупатель закодирует их под целевую платформу.
  • DWDM-модули тюнингуются по длине волны через тот же интерфейс управления, что и кодирование.

Как это делается в CodingBox

  1. Прочитайте модуль; он автоматически сохраняется в базу кодов, а перед любой записью снимается резервная копия.
  2. Задайте адрес таблицы, адрес пароля и значение пароля в Защищённой памяти и паролях — известные пароли из базы применяются автоматически.
  3. Отредактируйте вендора, парт-номер и другие поля идентификации в редакторе EEPROM. CC_BASE и CC_EXT пересчитаются сами.
  4. Запишите выбранные страницы, затем прочитайте обратно для проверки. Проверьте модуль на коммутаторе командами из Проверки оптики.

Кодируйте модули только ради совместимости, на которую у вас есть право, и следуйте политикам вашей организации и вендоров.

Правила чистой перекодировки — форматы полей, какие биты ставить и какие суммы править — в Полях вендора, Кодах соответствия и Контрольных суммах.

Что завод делает на том же шаге и в каких областях лежит калибровка, которую может уничтожить неосторожная запись: Производство и тестирование, Контроллер и прошивка.

Какой байт что хранит, прежде чем править: Карта SFF-8472 A0h, Карта верхней страницы SFF-8636, Карта верхних страниц CMIS, Карта XFP.

Целевые партномера и их грамматика по вендорам: Партномера OEM; что проверяет каждый класс платформ после записи: Как каждая NOS проверяет модуль.


Если вы обнаружили неточность или ошибку в материале, выделите соответствующий фрагмент и нажмите сочетание клавиш Ctrl+Enter, чтобы .