Инструкция по прошивке STM32 находится по ссылке: https://github.com/inmys/WDOG_BFK/blob/main/docs/firmware.pdf
Бинарник прошивки STM32 от 23.03.2022: https://github.com/inmys/WDOG_BFK/blob/main/bin_releases/202202023_WDOG_BFK.bin
Инструкция по сборке бинарника STM32 из исходников находится по ссылке: https://github.com/inmys/WDOG_BFK/blob/main/docs/firmware.pdf
Исходники прошивки STM32 находятся по ссылке: https://github.com/inmys/WDOG_BFK
Для прошивки u-boot понадобится бинарник u-boot.bin, терминал с возможностью передачи файлов по протоколу xmodem (например minicom), кабель micro-usb, консольный кабель Cisco.
2.1 Установить модуль NMS_uQ7_BKLT в мат. плату PicoITX. Подключить кабель MicroUSB в разъем X17 на мат. плате, консольный кабель Cisco в разъем X8, убедиться в отсутствии джампера X19, подать питание 12Вольт через разъем X4 (цоколевка разъема приведена здесь: Разъем питания PicoITX).
2.2 После подачи питания в операционной системе должен определиться COM-порт. В windows номер ком-порта можно увидеть в «Диспетчере устройств», в linux командой dmesg.
2.3 В течениие 5 секунд после подачи питания, подключиться к плате с помощью программы-терминала. Например:
minicom -b 115200 -D /dev/ttyS23
На экране должно отобразиться загрузочное меню STM32:
INMYS NMS-uQ7-BKLT HW ver.: 1.0 FW ver.: 2.8 CPU main flash #1 CPU boot flash #1 Boot attempt:4/4 Watchdog:OFF Autoboot:Off by key Flash 1: 1.8V 128Mb Flash 2: 1.8V 128Mb I/O Expander: OK CPU FW status:CONFIRMED Select menu item 1) Boot 2) Update flash 1 3) Update flash 2 4) Toggle main flash 5) Toggle boot flash 6) Toggle watchdog 7) Set FW status to: CONFIRMED 8) Set FW status to: UPDATED 9) Set FW status to: BAD 10) Update MCU
Требуется остановить загрузку нажатием на Enter. Экран меню должен обновиться. Если загрузка началась, то при нажатии на Enter ничего не произойдет. В этом случае требуется ввести команду
poweroff
2.4 Для загрузки u-boot в qspi NOR flash 16MB требуется выбрать пункт меню 2 нажатием на кнопку 2 клавиатуры, подтвердить начало загрузки нажатием на кнопку Y клавиатуры. Должны начать появляться символы CCC
2.5 Начать передачу файла u-boot.bin по протоволу xmodem.
В minicom это делается последовательным нажатием комбинации кнопок: Ctrl+a, s
Затем требуется выбрать в меню пункт xmodem , после чего выбрать на файловой системе файл u-boot.bin
Процесс загрузки может продолжаться около 20-30 секунд.
2.6 После успешной загрузки файла требуется отключить питание от платы и включить питание платы через 10 секунд.
2.7 Убедиться, что u-boot стартует через КОМ-порт, в который подключен консольный кабель Cisco
В случае успешной загрузи u-boot на экране консоли будет примерно слудующий вывод:
U-Boot 2021.01-ga6d0dbbb-dirty (Feb 22 2022 - 14:59:51 +0300) bfk3 Model: Baikal-T1 BFK3 evaluation board DRAM: 2048MB, ECC, 32-bit 128 MiB WDT: Not found! Loading Environment from SPIFlash... SF: Detected w25q128fw with page size 256 Bytes, erase size 64 KiB, total 16 MiB CPU frequency set to 1200MHz OK In: serial Out: serial Err: serial SF: Detected w25q128fw with page size 256 Bytes, erase size 64 KiB, total 16 MiB RomID: ef60180000000000000000000000000000000000 Bus dwc3@1F100000: Register 1000140 NbrPorts 1 Starting the controller USB XHCI 1.00 scanning bus dwc3@1F100000 for devices... 2 USB Device(s) found SATA link 0 timeout. SATA link 1 timeout. AHCI 0001.0300 32 slots 2 ports 6 Gbps 0x3 impl SATA mode flags: ncq stag pm led clo only pmp fbss pio slum part ccc apst Net: eth0: eth1@1F05E000, eth1: eth2@1F060000 Hit any key to stop autoboot: 0
Инструкция по сборке файла u-boot.bin находится здесь: Сборка образа Линукс для NOR Flash
Подключить плату в сеть с DHCP через разъем ETH0. Через консольный разъем ciso подключиться терминалом (putty, picocom, minicom и пр) в режиме 8-n-1 115200. Включить плату. После старта u-boot остановить загрузку нажатием на Enter и ввести следующие команды.
i2c dev 1 i2c probe #Корректный вывод: #Valid chip addresses:timeout in disabling I2C adapter # 52 53 68 6A setenv ipaddr 192.168.1.190 setenv serverip 192.168.1.51 tftp ${initrd_addr_n} baikal_kif/bfk3.rom sf probe 0 sf update ${initrd_addr_n} 0 ${file_size} reset
Выключить и включить питание. Это обязательно!
Должен загрузиться Linux (сборка Байкалэлектроникс) с логотипом белочки. Все дальнейшие команды выполняются в командной строке Linux.
Инструкция по сборке файла bfk3.rom находится здесь: Сборка образа Линукс для NOR Flash
ifconfig | grep HWaddr
MAC-адреса интерфейсов должны быть уникальны. Обычно они начинаются на 04:91:62
Внимание! MAC-адреса, начинающиеся на 4C являются ошибочными
Подключить ethernet в разъём eth0 (рядом с консолью)
ping -c 5 192.168.1.51
Проверить светодиодную индикацию на разъеме eth0.
Оранжевый светодиод должен светиться непрерывно, зеленый должен моргать в такт передаваемым пакетам (ping)
Отключить кабель от разъема eth0, и подключить к eth1. Для работы разъема eth1 мат. плата PicoITX должна быть соединина с модулем Q7 шлейфом FPC
ifconfig eth0 down #дождаться получения адреса на интерфейсе eth1 под dhcp. процедура не должна занимать больше одной минуты ip='' ; while [ "x$ip" == "x" ] ; do ip=`ifconfig eth1 | grep 'inet addr' | awk '{print $2}' | awk -F':' '{print $2}'`; sleep 1; echo "Waiting for a IP eth1" ; done; ifconfig eth1 ; ping -c 5 192.168.1.51
Проверить светодиодную индикацию на разъеме eth1.
Оранжевый светодиод должен светиться непрерывно, зеленый должен моргать в такт передаваемым пакетам (ping)
cat /proc/partitions | grep sda ; cat /sys/block/sda/device/model ; dd if=/dev/sda of=/dev/null bs=10M count=50
Должна отобразиться модель M2 диска. Например TS256GS8042-NPF
должен быть диск sda
скорость должна быть не меньше 400МБ/с
cat /proc/partitions | grep sdb ; cat /sys/block/sdb/device/model ; dd if=/dev/sdb of=/dev/null bs=10M count=50
должен быть диск sdb
Должна отобразиться модель внешнего SATA диска. Например OCZ-VERTEX4
скорость должна быть не меньше 380МБ/с
USB 2.0 flash должна детектироваться как /dev/sdc
dd if=/dev/sdc of=/dev/null bs=10M count=10 dd if=/dev/sdd of=/dev/null bs=10M count=10 dd if=/dev/sde of=/dev/null bs=10M count=10 dd if=/dev/sdf of=/dev/null bs=10M count=10 dd if=/dev/sdg of=/dev/null bs=10M count=10
Скорость должна быть не меньше 10 MB/s
echo "HW clock time1 (UTC):" && hwclock -r && sleep 1 && echo "HW clock time2 (UTC):" && hwclock -r && rdate 192.168.1.51 && echo "Synced system time (localtime):" && date && hwclock -w -u && echo "Synced HW clock time (UTC):" && hwclock -r && echo "Synced system time (localtime):" && date reboot
Светодиод D13 на PicoITX должен светиться непрерывно.