В нашу инженерную лабораторию попала демоплата Baikal BFK Rev 1.6 на основе первого российского процессора для коммерческих разработок — SOM Baikal-T1 MIPS.
Двухъядерный процессор «Байкал-Т1» на архитектуре MIPS Warrior P-class P5600 MIPS 32 был анонсирован еще в 2015 году в рамках программы по импортозамещению, его разработчик — российская фаблес-компания «Байкал Электроникс». Эта система на кристалле была создана для проектирования промышленных и потребительских устройств: маршрутизаторов и сетевых накопителей, тонких клиентов, мультимедийных центров, систем ЧПУ и т.п.
Откроем коробку и посмотрим, как работает стандартный пакет поддержки платформы (BSP) на тестовой плате:
Подключаем плату и загружаем установочный файл bsp_baikal_mips_4_00_08.run с сайта разработчика.
В качестве хост-системы используется Debian 8.1. Добавляем пакеты на host-систему:
$ sudo apt-get install parted kpartx libssl-dev
Готовимся к сборке. Создаем директории, даем права на исполнение .run-файла и запускаем установку BSP от Baikal:
$ mkdir -p ~/baikal-bsp
$ cp <download dir>/bsp_baikal_mips_4_00_08.run ~/baikal-bsp/
$ cd ~/baikal-bsp/
$ chmod +x bsp_baikal_mips_4_00_08.run
$ ./bsp_baikal_mips_4_00_08.run
Выглядит это примерно так:
Запускаем сборку BSP, используя команду:
$ cd ~/baikal-bsp/baikal/usr/scripts
$ ./build-boot-img.sh bfk –a
По окончанию сборки получаем:
Готовим плату для запуска:
- Подключаем разъем XP4 mini USB-кабелем к HOST-системе, на этом порту живет DFU Loader.
- Подключаем переходник RS232 -> USB к XS9 (верхний разъем), он используется для консоли.
- Подключаем блок питания формата ATX к разъему XP14.
Прошиваем. Для прошивки используется спецификация USB DFU.
Включаем питание платы нажатием кнопки PWR ON (SB2) и выполняем команды:
$ cd ~/baikal-bsp
$ sudo baikal/bin/./dfu-util -D baikal/img/bfk-mips.rom -d abf0:1234 -a 0
Лог прошивки выглядит примерно так:
Пример загрузки устройства:
Собираем openwrt rootfs для демонстрационной платы.
Получаем исходный код openwrt (будет использовать Chaos Calmer 15.05)
$ cd ~/baikal-bsp
$ git clone git://git.openwrt.org/15.05/openwrt.git
Получаем и применяем патч для поддержки демонстрационной платы Baikal BFK в openwrt (патч можно взять по ссылке 0001-add-supporting-baikal-BFK-board.patch):
$ cd ~/baikal-bsp /openwrt
$ git checkout -b work
$ git am <download dir>/0001-add-supporting-baikal-BFK-board.patch
Собираем прошивку:
$ cd ~/baikal-bsp /openwrt
$ cp target/linux/baikal/baikal-bfk-defconfig .config
$ make defconfig
$ make -j4
Пример лога сборки:
Прошиваем на демонстрационную плату:
$ cd ~/baikal-bsp
$ sudo baikal/bin/./dfu-util -D openwrt/build_dir/target-mipsel_mips32_uClibc-0.9.33.2/linux-baikal_bfk-1.x/bfk-mips.rom -d abf0:1234 -a 0
Пример запуска:
Информация по процессору:
Напоследок проверим производительность Ethernet (ETH 1G) — разъем XS11, нижний коннектор:
$ ifconfig eth0 up 10.54.4.250
$ iperf -c 10.54.4.61
Вывод команды:
Видим, что демонстрационная плата вполне юзабельна, пакет поддержки (BSP) основан на ядре 4.4.24 (не очень старом) и загрузчике U-Boot 2014.10 — это упрощает использование сборочных систем openwrt, yokto, buildroot. При необходимости можно перейти на более свежую версию ядра.
В распоряжении инженера весь набор интерфейсов процессора «Байкал-T1»: 10GbE и GbE, USB, SATA, PCIe, GPIO, UART, I2C, SPI.
Форм-фактор платы — microATX — привычный размер материнской платы 244х244 мм. Её можно использовать для разработки ПО, макетирования схемотехники, тестирования и отладки своих инженерных решений через JTAG, EJTAG и DFU.
В целом, впечатления от демонстрационного комплекта остались положительные. Будем использовать.
Автор: Promwad