Всего 3 новости

Чтобы хорошо разбираться в программировании трансиверов, нужно в первую очередь изучить стандарты и спецификации.

Мы сделали подборку стандартов MSA для трансиверов самых популярных форм-факторов. В этом списке вы найдете наименования и прямые ссылки на документы под соотвествующие типы трансиверов.


QSFP-DD

QSFP-DD — Common Management Interface Specification

http://www.qsfp-dd.com/wp-content/uploads/2021/05/CMIS5p0.pdf

QSFP+, QSFP28, QSFP-DD

SFF-8679 - QSFP+ 4X Hardware and Electrical Specification 1.8
SFF-8436 - QSFP+ 4X 10 Gb/s Pluggable Transceiver 4.9
SFF-8661 - QSFP+ 4X Module 2.5
SFF-8662 - QSFP+ 4X 28 Gb/s Connector (Style A) 2.9
SFF-8682 - QSFP+ 4X Connector 1.1
SFF-8672 - QSFP+ 4X 28 Gb/s Connector (Style 1.2
SFF-TA-1004 - Tunable QSFP+ / QSFP28 Memory Map for ITU Frequencies - 0.0.10
SFF-8663 - QSFP+ 28 Gb/s Cage (Style A) 1.7
SFF-8683 - QSFP+ Cage 1.3
INF-8628 - QSFP-DD 8X Transceiver (QSFP Double Density) - 0.0
SFF-8635 - QSFP+ 4X 10 Gb/s Pluggable Transceiver Solution (#QSFP10) 0.6
SFF-8685 - QSFP+ 14 Gb/s 4X Pluggable Transceiver Solution (#QSFP14) 0.6
SFF-8665 - QSFP+ 28 Gb/s 4X Pluggable Transceiver Solution (#QSFP28) 1.9
INF-8438 - QSFP (Quad Small Formfactor Pluggable) Transceiver 1.0


10 Gigabit XFP, X2, XENPAK

INF-8077 - 10 Gigabit Small Form Factor Pluggable Module 4.5 #XFP
INF-8476 - X2 10 Gigabit Ethernet Transceiver 2.0b
INF-8474 - Xenpak 10 Gigabit Ethernet Transceiver 3.0


SFP, SFP+, SFP28

SFF-8071 - SFP+ 1X 0.8mm Card Edge Connector 1.9a
SFF-8432 - SFP+ Module and Cage 5.2a
SFF-8472 - Management Interface for SFP+ 12.3
SFF-8418 - SFP+ 10 Gb/s Electrical Interface 1.4
SFF-8419 - SFP+ Power and Low Speed Interface 1.3
SFF-8461 - SFP+ Active Cable Specifications and Alternate Test Methods 0.2
SFF-8402 - SFP+ 1X 28 Gb/s Pluggable Transceiver Solution (SFP28) 1.1
SFF-8084 - SFP+ 1X 4 Gb/s Pluggable Transceiver Solution 1.7
SFF-8083 - SFP+ 1X 10 Gb/s Pluggable Transceiver Solution (SFP10) 3.1
SFF-8081 - SFP+ 1X 16 Gb/s Pluggable Transceiver Solution (SFP16) 1.4
SFF-8690 - Tunable SFP+ Memory Map for ITU Frequencies 1.4
SFF-8431 - SFP+ 10 Gb/s and Low Speed Electrical Interface 4.1
SFF-8433 - SFP+ Ganged Cage Footprints and Bezel Openings 0.7
SFF-8089 - SFP (Small Formfactor Pluggable) Rate and Application Codes 1.3
SFF-8079 - SFP Rate and Application Selection 1.7
SFF-8075 - PCI Card Version of SFP Cage 1.0
INF-8074 - SFP (Small Formfactor Pluggable) Tansceiver 1.0


Если вы не нашли какой-то документ, то рекомендуем обратиться к поиску SNIA:

https://www.snia.org/technology-communities/sff/specifications


Часто при попытке перепрограммировать трансиверы SFP RJ45 у пользователей возникают проблемы. Хотя большинство сторонних производителей не используют никакой защиты для медных трансиверов, все же модули часто защищены от случайного стирания. И сегодня мы поможем вам разобраться в том, как перекодировать защищенный от записи SFP RJ45.

Для использования медных SFP сторонних производителей в брендовых коммутаторах необходимо загрузить совместимый код в память трансивера. По этой причине данная тема вызывает много вопросов и проблем у пользователей.

Как правило, медные SFP основаны на простой микросхеме EEPROM, такой как 24C02, и не содержат MCU, установленного на печатной плате, который выполняет функцию защиты от записи в соответствии с SFF 8472. Этот подход помогает заводам производить продукт с низкой стоимостью и держать хорошие цены на рынке.

В таких модулях не поддерживается адресное пространство страницы A2h или не возвращается DDM в нижней части таблицы A2h. При чтении страницы A2h модуля программатор вернет ошибку QERR:R20, или прочитанные регистры страницы будут представлены пустыми ячейками.

Результат чтения зависит от серии EEPROM, которая используется при производстве в трансивера, но тем не менее ясно сигнализирует о типе аппаратного решения.

Как работает защита?

Как уже говорили, медные модули не поддерживают страницу A2h. Бесполезно пытаться подобрать пароль или использовать известный пароль для такого модуля, потому что поле ввода пароля не существует. Попытка записи пароля в такой модуль не будет возвращать никаких ошибок.

Данные Serial ID прошиваются в EEPROM трансивера на заводе. Чип EEPROM серии 24C02 имеет специальный вывод WP - Write Protect, предназначенный для управления функцией защиты от записи. Когда контакт WP подключен к плану питания Vcc, функция защиты от записи включена.

Схема трансивера основана на этом трюке специально, чтобы сделать модуль программируемым на заводе и защищенным от записи для конечного потребителя.

Таким образом, требуемый вывод WP микросхемы EEPROM подключен к контактам порта SFP, которые по-умолчанию находятся в высоком логическом уровне и не меняют свое состояние в ходе эксплуатации в нормальном режиме.

WP связан с цепью питания

Часто контакт WP связан с цепью питания TX или RX трансивера. Но медные модули не имеют лазера и оптического приемника. Для питания SFP 1000BASE-T требуется только одна линия, другая может использоваться для управления защитой от записи.

В нормальном состоянии обе линии RX и TX подключены к Vcc, что создает высокий уровень на выводе WP (защита включена) при реализации данной схемы защиты.

В то же время, контакт WP подтянут к земле через резистор на печатной плате трансивера, что создает низкий уровень, когда линия не связана с планом питания.

Итак, первое, что вам нужно сделать: разорвать по очереди линии питания трансивера и попытаться осуществить запись в модуль. Не нужно ничего резать, просто удалите одну из перемычек с контактов TX PWR и RX PWR на плате программатора SFPTotal.

Если данный метод не дал никаких результатов, значит используемая схема защиты связана с другой линией модуля.

WP связан с TX_DIS

Вывод TX_DISABLE должен быть подключен к Vcc в нормальном состоянии и часто используется для управления защитой от записи. Просто снимите перемычку с TX_EN на SFPTotal Mini или P3 на платах SFPTotal Plus, чтобы разблокировать приемопередатчик с этой схемой защиты.

WP связан с TX_FAULT

Вывод TX_FAULT бесполезен для медного трансивера и может быть использован в специальных функциях поставщика для управления защитой от записи.

Данная линия по-умолчанию находится в низком логическом уровне. Но EEPROM все еще заблокирован. Это значит, что защита скорее всего работает по схеме управления инвертированным сигналом, которая осуществляется при помощи MOSFET транзистора. В этом случае мы должны управлять состоянием TX_FAULT, используя соединение с планом питания Vcc.

Программатор SFPTotal не имеет специальных элементов управления для этого. Но вы можете найти транзистор с обозначением Q3 и соединить друг с другом представленные контакты на время выполнения операции записи.

Эта схема защиты часто встречается на модулях SFP RJ45 от компаний Mikrotik и D'Link. Протестированные образцы модулей от данных компаний были успешно перепрошиты в ходе наших экспериментов.

Подведем итоги

Таким образом, используя представленные схемы, перепрограммирование защищенных от записи трансиверов SFP RJ45 возможно без разборки модулей, применения паяльника и особых технических решений, и доступно в пределах элементов управления на платах программаторов SFPTotal.

Следует отметить, что представленные схемы могут быть справедливы в том числе для SFP DAC, поскольку они также не используют оптику.

Напоследок, хотелось бы поблагодарить коллег и клиентов, предоставивших образцы и материалы для проведения экспериментов.


Цель данной статьи рассказать простыми словами о том, какие бывают реализации трансиверов по типу защиты от записи и какие меры предпринимать, чтобы быстро определить тип защиты для модуля и успешно его перепрограммировать с использованием программаторов SFPTotal Mini или SFPTotal Plus.

Незащищенные трансиверы

На печатной плате SFP трансиверов без защиты от записи обычно установлена микросхема памяти EEPROM, которая содержит "паспортную информацию" о типе модуля и может быть перезаписана без каких-либо ограничений и блокировок со стороны модуля. В таких трансиверах, как правило, доступна для чтения только страница A0h, а чтение страницы A2h возвращает ошибку. Для записи в такие модули достаточно загрузить необходимую прошивку в окно программы и нажать <Запись>. После выполнения операции записи интерфейс программы должен вернуть ответ WRITE OK в случае, если запись прошла успешно.

Самая большая проблема с прошивкой таких модулей - выбор правильной скорости записи. EEPROM сама по себе довольно медленная память, поэтому лучше всего её программировать при частоте тактирования шины данных 1 кГц. Это в 10 раз медленнее, чем стандартная скорость, с которой работают программаторы SFPTotal. Вы можете с легкостью изменить скорость работы через настройки программы. Остальное не доставит хлопот.

Аппаратная блокировка EEPROM

Медные трансиверы SFP RJ45 и DAC кабели не имеют оптики, а следовательно, не содержат лазер-драйвера и не нуждаются в функции DDM для контроля характеристик мощности сигнала на приемнике и передатчике. И часто такие модули также невозможно прошить. Как и в случае с незащищенными трансиверами, устройство таких модулей довольно примитивное, а роль памяти, хранящей характеристики модуля, выполняет простая микросхема EEPROM.

Чтобы исключить несанкционированную или случайную перезапись кода в память модуля, производители используют различные трюки, которые позволяют заблокировать EEPROM от нежелательных изменений. Нужно заметить, что подобные меры защиты со стороны производителей не лишены смысла. В практике наших клиентов происходили случайные стирания памяти модуля или изменение рабочего кода в результате сбоев оборудования.

В схеме трансиверов c аппаратной блокировкой EEPROM реализована защита с использованием специального контакта WP (Write protect) микросхемы памяти.

При наличии на контакте WP логического уровня равного напряжению питания, запись в модуль невозможна - память заблокирована. Чтобы модуль в обычном состоянии был заблокирован от записи, данную линию соединяют через резистор с контактом SFP порта, на котором предусмотрено напряжение питания, или выходом, на котором предусмотрен высокий логический уровень по-умолчанию. В результате, при включении в порт коммутатора память такого модуля доступна только для чтения.

Чтобы сделать модуль перепрограммируемым, в цепь контакта WP включают резистор с большим номиналом (большим, чем к питанию), подтягивающий линию к земле. Таким образом, если разорвать план питания или принудительно соединить соответствующую линию SFP с землей (никогда так не делайте!), на контакте WP микросхемы памяти появится низкий логический уровень - модуль станет доступен для записи.

В условиях завода используются специальные программаторы, которые подают необходимый уровень на контакт, отвечающий за разблокировку EEPROM.

На программаторах SFPTotal имеются предусмотренные управляющие элементы, которые позволяют создать условия для перепрограммирования модулей с аппаратной защитой.

Трансиверы с защитой от записи с использованием пароля

В соответствии со спецификацией MSA SFF-8472 трансиверы с поддержкой функции DDM могут содержать защиту от записи с использованием пароля. Для этих задач стандартом зарезервировано целых 7 байт страницы A2h. Однако, обычно длина пароля составляет всего 4 байта.

Для успешного программирования большинства 1G и 10G трансиверов с защитой от записи необходимо произвести предварительный ввод пароля перед записью изменений в память модуля.

Существуют различные аппаратные реализации модулей, которые работают под управлением специальной микросхемы, контролирующей возможность записи в отдельную микросхему EEPROM или содержащей встроенную память. Попытка записи в такой модуль без пароля или с неверным паролем будет возвращать ошибку - WRITE FAIL.

В трансиверах, где установлена отдельная микросхема EEPROM, схема защиты похожа на описанную в разделе про аппаратную блокировку. Отличие состоит в том, что контактом WP микросхемы памяти управляет контроллер, изменяя состояние управляющего вывода после записи правильного значения пароля в область страницы A2h по смещению 7Bh.

В других аппаратных реализациях трансиверов используются контроллеры, содержащие встроенный блок памяти. Такие модули могут быть довольно капризны к скорости записи и интервалам между блоками данных, поскольку программно обрабатывают сигналы на шине данных.

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

Что такое «сейв-команда»?

Нередко приходится работать с трансиверами, которые характерны тем, что успешно программируются после ввода пароля, но не сохраняют новые изменения в памяти после сброса питания. После сброса питания в памяти остается старый код.

Подобные модули при программировании хранят изменения во временной памяти и требуют ввода специальных инструкций – «сейв-команды» – для переноса прошивки из временной памяти в постоянную.

Программирование таких модулей не описано никаким стандартом и предусматривает выполнение последовательных инструкций, придуманных каждым отдельным производителем. В лучшем случае – производитель может предоставить инструкцию с алгоритмом программирования модуля, в худшем – придется искать подходящий алгоритм на основе уже известных решений.

Для записи в такие модули предусмотрена возможность использования гибких скриптов на основе протокола команд SFPTotal.

Комбинированная защита

Также встречаются трансиверы, защита в которых является комбинированным вариантом аппаратной блокировки, ввода пароля и «сейв-команды».

Одним из примеров такой защиты является невозможность произвести запись в модуль, если он не находится в режиме пониженного энергопотребления, даже в том случае, если используется верный пароль.

Этот подход не лишен логики. Зачем перепрошивать модуль, когда он светит на полную мощность?

Комбинированная защита чаще всего встречается на модулях соответствующих последним ревизиям SFF-8472 и поддерживающих до 256 страниц в верхней области памяти страницы A2h (со смещения 80h).

Для прошивки таких трансиверов вы должны заранее знать характер и порядок манипуляций с доступными портами ввода-вывода, а также алгоритм программирования завода производителя.

Подведем итоги

Для успешного программирования незащищенных трансиверов достаточно произвести запись на оптимальной частоте тактирования шины данных.

Для программирования трансиверов с аппаратной защитой нужно найти линию, которая отвечает за блокировку микросхемы памяти, и привести ее в соответствующее состояние перед записью изменений.

Чтобы прошить модуль с защитой по паролю – нужно знать пароль. Вы можете запросить пароль у своего поставщика (производителя) или найти его в официальных даташитах, в противном случае - можно воспользоваться функцией поиска паролей, встроенной в программное обеспечение для программаторов SFPTotal.

Для прошивки модулей, которые не сохраняют изменения после сброса питания, необходимо использовать запись с паролем и «сейв-командой», которая зафиксирует изменения в памяти трансивера. Данный механизм программирования легко реализуется с помощью скриптов.

Для модулей с комбинированной защитой, необходимо заранее знать механизм программирования. Компании, покупающие большие партии модулей, могут без проблем получить необходимые инструкции у производителя.

Помощь по вопросам программирования защищенных трансиверов вы можете всегда получить у нашей службы поддержки.