Contents
Python-пакет mcom02-flash-tools содержит утилиты для прошивки памятей на модулях на базе СнК 1892ВМ14Я (aka MCom-02).
Проверялось на Python 3.8. Требуются свежие версии pip, setuptools:
export PATH=~/.local/bin:$PATH python3 -m pip install --upgrade --user pip hash pip3 pip3 install setuptools --upgrade
Пакет mcom02-flash-tools является стандартным пакетом Python. Установка выполняется любым из методов:
git clone https://github.com/elvees/mcom02-flash-tools.git cd mcom02-flash-tools pip3 install . --user # or if you want to hack the code pip3 install -e . --user # or just pip3 install git+https://github.com/elvees/mcom02-flash-tools.git --user export PATH=~/.local/bin:$PATH mcom02-flash-spi --help
Note
Пакет использует пакет setuptools-scm. При установке требуется
директория .git
. Установка из zip-файла, не содержащего .git
(например, zip-файл,
загруженный через веб-интерфейс GitHub Download ZIP), не поддерживается.
Прошивка выполняется утилитой mcom02-flash-spi. Прошивка выполняется по интерфейсу UART0:
- MCom-02 загружается в режиме BootROM UART.
- ПК передаёт Intel-HEX файл по UART.
- BootROM прошивает файл в SPI0.
Поддерживаемые модули и памяти:
- Салют-ЭЛ24Д1 r1.3;
- Салют-ЭЛ24Д1 r1.4;
- Салют-ЭЛ24Д1 r1.5;
- Салют-ЭЛ24Д2 r1.1;
- Салют-ЭЛ24ОМ1 r1.1 с установленным Салют-ЭЛ24ПМ1 r1.1 Салют-ЭЛ24ПМ1 r1.2;
- Салют-ЭЛ24ОМ1 r1.2 с установленным Салют-ЭЛ24ПМ1 r1.2, Салют-ЭЛ24ПМ2 r1.0 или Салют-ЭЛ24ПМ2 r1.1.
Для прошивки выполнить:
Подготовить модуль и стенд для прошивки:
- Отключить питание модуля, отключить все кабели от модуля.
- Установить переключатели BOOT выбора режима загрузки на модуле в режим UART: 1 — OFF, 2 — ON, 3 — OFF (подробнее см. документ "Руководство пользователя" на соответствующий модуль).
- Подключить переходник UART-USB к порту UART0 модуля и к порту USB ПК.
- На ПК убедиться, что не запущены приложения (например, Putty, minicom) работающие с
/dev/ttyUSB
или COM-портом ПК. - Подключить модуль к источнику питания.
В терминале ПК ввести команду для запуска скрипта прошивки SPI флеш-памяти:
mcom02-flash-spi -p <device> <image-path>
где
<device>
—/dev/ttyUSB
(или COM-порт), на котором проинициализирован драйвер UART-USB переходника,<image-path>
— путь до файла прошивки SPI флеш-памяти.Например:
mcom02-flash-spi -p /dev/ttyUSB1 uboot-spiflash.img
Прошивку памяти считать завершённой успешно при выводе сообщения
Checking succeeded
. Для файла размером ~300КБ процесс прошивки занимает около 4 минут, включая проверку записанного образа.Warning
Для перезагрузки модуля в режиме загрузки по UART должно использоваться отключение питания модуля. Не допускается использование кнопки RESET, расположенной на модуле.
Отключить питание модуля.
Установить переключатели BOOT выбора режима загрузки на модуле в режим SPI: 1 — ON, 2 — ON, 3 — OFF.
Заводские настройки специфицируются документом Спецификация заводских настроек модулей на базе 1892ВМ14Я.
Прошивка заводских настроек выполняется утилитой mcom02-flash-factory. Для использования утилиты модуль должен быть прошит загрузчиком U-Boot:
- MCom-02 загружает U-Boot с SPI0.
- Утилита mcom02-flash-factory останавливает автозагрузку, переводит U-Boot в режим терминала.
- Утилита подаёт команды U-Boot для чтения/записи заводских настроек.
Важно: утилита должна запускаться до включения питания (или сброса) процессора. В противном случае утилита не успеет перевести U-Boot в режим терминала и U-Boot загрузит Linux.
Печать заводских настроек:
mcom02-factory-settings print -p /dev/ttyUSB0
Очистка заводских настроек:
mcom02-factory-settings clear -p /dev/ttyUSB0
Запись заводских настроек:
mcom02-factory-settings flash \ factory_eth_mac=00:11:22:33:44:55 \ factory_serial=112233 \ factory_model=elvees,salute-el24d1-r1.3 \ -p /dev/ttyUSB0
В случае если USB-порт MCom-02 разведён на плате в режиме USB-устройства (например, модуль Салют-ЭЛ24ПМ1 r1.2 установленный в специализированную плату-носитель), то прошивка eMMC или SD-карты возможна по USB:
- MCom-02 загружает U-Boot с SPI0;
- Утилита mcom02-flash-ums-mmc останавливает автозагрузку, переводит U-Boot в режим терминала.
- Утилита подаёт команды U-Boot для перевода MCom-02 в режим USB Mass Storage (UMS), например, память eMMC установленная на плате Салют-ЭЛ24ПМ1 r1.2 становится доступной на ПК в виде флеш-накопителя.
- Утилита обнаруживает новое UMS-устройство на ПК.
- Утилита записывает образ в UMS-устройство (eMMC-память модуля).
Note
Работа утилиты возможна только в ОС Linux.
Note
Для работы утилиты в U-Boot должна быть включена поддержка UMS.
Пример прошивки eMMC-памяти на Салют-ЭЛ24ПМ1 r1.2 (модуль должен быть установлен в специальную плату-носитель с USB-портом разведённым в режиме USB-устройства или в режиме USB OTG. На модуле Салют-ЭЛ24ОМ1 USB разведён в режиме хост, прошивка eMMC данной утилитой невозможна):
mcom02-flash-ums-mmc /dev/ttyUSB0 <path-to-emmc-image> --status
Тестирование может выполняться на модуле Салют-ЭЛ24ПМ установленном на стенде ПМ-УКФ.
Для запуска тестов необходимо указать порты УИП, терминала модуля и путь к образу прошивки.
Для определения портов запустить:
for k in /dev/ttyUSB*; do echo $k; uip-ctl $k status; done
Скачать образ U-Boot для ПМ-УКФ и распаковать (файл должен называться
mcom02-salute-el24pm2-r1.0-1.1-ukf-r1.1-uboot-...img
).
Установить зависимости в Python-среду:
pip3 install -r test-requirements.txt
Запуск тестов:
pytest --dut-term=<dut_term> --uip-term=<uip_tty> --img=<img_file>
где <dut_term>
--- порт терминала модуля, <uip_term>
--- порт УИП,
<img_file>
--- файл с образом прошивки U-boot.