Спецификация заводских настроек модулей

Документ описывает реализацию хранения заводских настроек в энергонезависимой флеш-памяти для модулей на базе 1892ВМ14Я. Реализация может быть применима к модулям Салют-ЭЛ24Д1, Салют-ЭЛ24Д2, Салют-ЭЛ24ОМ с установленным модулем Салют-ЭЛ24ПМ.

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

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

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

Реализация хранения

Требования к аппаратуре

Блок заводских настроек (далее — блок настроек) хранится в микросхеме энергонезависимой флеш-памяти модуля. Флеш-память подключается к 1892ВМ14Я по интерфейсу SPI. Микросхема памяти должна поддерживать аппаратную защиту отдельных секторов. Схемотехника подключения микросхемы памяти представлена на рисунке Рис. 3. Обозначения: CH1 — запаиваемая перемычка, W# — пин аппаратной защиты микросхемы памяти, Vcc — питание памяти, R — резистор, подтягивающий к нулевому уровню W#. При изготовлении модуля перемычка CH1 не запаивается.

../../_images/connection.png

Рис. 3 Схемотехника подключения микросхемы флеш-памяти с интерфейсом SPI

Состояния блока настроек

На рисунке Рис. 4 представлена диаграмма состояний блока настроек. Двойным кругом представлено состояние по умолчанию после монтажа компонентов модуля.

../../_images/fsm.png

Рис. 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 ::=  crc32 array 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.

Шаги технологической операции:

  1. Собрать стенд прошивки: модуль, блок питания модуля, кабель USB-UART, ПК.

  2. Перевести модуль в режим загрузки с SPI для загрузки U-Boot.

  3. Запустить технологическое ПО на ПК для прошивки заводских настроек.

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

  4. Подать питание на модуль.

  5. Дождаться уведомления от технологического ПО о завершении прошивки.

  6. Выключить питание модуля.

Перепрошивка заводских настроек

Шаги технологической операции:

  1. Запаять перемычку CH1 на модуле.

  2. Выполнить операцию Первичная прошивка заводских настроек.

  3. Выпаять перемычку CH1 на модуле.