Спецификация заводских настроек модулей
Документ описывает реализацию хранения заводских настроек в энергонезависимой флеш-памяти для модулей на базе 1892ВМ14Я. Реализация может быть применима к модулям Салют-ЭЛ24Д1, Салют-ЭЛ24Д2, Салют-ЭЛ24ОМ с установленным модулем Салют-ЭЛ24ПМ.
Заводские настройки — набор параметров, прошиваемых производителем аппаратуры. Заводские настройки используются для установки уникальных идентификаторов экземпляров аппаратуры и идентификаторов моделей аппаратуры. Наличие заводских настроек позволяет унифицировать программное обеспечения для различных моделей аппаратуры.
Для технологичности производства аппаратуры первая запись заводских настроек не должна требовать аппаратного вмешательства.
Перезапись заводских настроек не должна быть возможна без аппаратного вмешательства.
Реализация хранения
Требования к аппаратуре
Блок заводских настроек (далее — блок настроек) хранится в микросхеме энергонезависимой флеш-памяти модуля. Флеш-память подключается к 1892ВМ14Я по интерфейсу SPI. Микросхема памяти должна поддерживать аппаратную защиту отдельных секторов. Схемотехника подключения микросхемы памяти представлена на рисунке Рис. 3. Обозначения: CH1 — запаиваемая перемычка, W# — пин аппаратной защиты микросхемы памяти, Vcc — питание памяти, R — резистор, подтягивающий к нулевому уровню W#. При изготовлении модуля перемычка CH1 не запаивается.
Состояния блока настроек
На рисунке Рис. 4 представлена диаграмма состояний блока настроек. Двойным кругом представлено состояние по умолчанию после монтажа компонентов модуля.
Состояния блока настроек:
незащищен — на пин памяти W# подаётся низкий уровень, значения регистров аппаратной защиты памяти — по умолчанию;
защищён аппаратно — на пин памяти W# подаётся низкий уровень, в регистрах аппаратной защиты сектора включена защита.
Размещение блока настроек
Блок настроек хранится в начале последнего сектора флеш-памяти. Размер блока определяется автоматически и равен размеру сектора флеш-памяти.
Содержание блока настроек
Логическое представление данных в блоке — ассоциативный массив. Ключи и значения массива являются строками.
Ключи массива должны иметь префикс factory_
и не должны пересекаться со множеством стандартных
переменных U-Boot.
Обязательные элементы массива блока настроек:
factory_eth_mac
— Ethernet MAC-адрес модуля. Октеты MAC-адреса разделяются символом двоеточия;factory_serial
— серийный номер модуля;factory_model
— модель модуля (например,elvees,salute-el24d1-r1.3
для модуля Салют-ЭЛ24Д1 r1.3).
Формат блока настроек
Блок настроек форматируется как секция окружения U-Boot с отключенной избыточностью. Описание
секции ubootsection
в формате EBNF:
ubootsection ::= crc32array
tail
array ::= (key "=" value "\0")* tail ::= ("\0")*
Описание элементов ubootsection
:
crc32 — 32-битное значение CRC32, рассчитанное для данных
array
иtail
.array
— сериализованный ассоциативный массив. Порядок элементов массива не определён. Символ\0
в ключах и значениях запрещён. Примерarray
:<key1>=<value1>\0<key2>=<value2>...<keyN>=<valueN>\0
tail
— заполнение символами\0
до размера BLOCK_SIZE-4, где BLOCK_SIZE — размер блока настроек. Заполнение выполняется после расчёта сериализованного массиваarray
.
Примеры технологических операций
Первичная прошивка заводских настроек
Перед проведением технологической операции модуль должен быть прошит загрузчиком U-Boot.
Шаги технологической операции:
Собрать стенд прошивки: модуль, блок питания модуля, кабель USB-UART, ПК.
Перевести модуль в режим загрузки с SPI для загрузки U-Boot.
Запустить технологическое ПО на ПК для прошивки заводских настроек.
ПО выполняет ожидание загрузки модуля в течение таймаута. ПО автоматически или по ответу оператора устанавливает значения заводских настроек.
Подать питание на модуль.
Дождаться уведомления от технологического ПО о завершении прошивки.
Выключить питание модуля.
Перепрошивка заводских настроек
Шаги технологической операции:
Запаять перемычку CH1 на модуле.
Выполнить операцию Первичная прошивка заводских настроек.
Выпаять перемычку CH1 на модуле.