Компания «Байкал Электроникс» представляет тестовый комплект ТК-Т1, предназначенный для ознакомления с возможностями и функциональностью новейшего российского коммуникационного процессора Baikal-T1 на основе ядра mips32r5.

Основным элементом комплекта ТК-Т1 является отладочная плата с установленной на ней закорпусированной системой-на-кристалле (СнК) Baikal-T1. Отладочная плата выполнена в формате microATX и предназначена для разработки прикладного и системного программного обеспечения и макетирования схемотехники на основе СнК.

Hardware Features

Отладочная плата предоставляет доступ ко всему набору интерфейсов, реализованных в СнК Baikal-T1 для взаимодействия с внешними компонентами. Среди интерфейсов есть как предназначенные для взаимодействия с внешними активными устройствами (10GbE и GbE, USB, SATA, PCIe), так и интерфейсы для подключения различных датчиков, реле и другого оконечного оборудования (GPIO, UART, I2C, SPI). Для диагностики и отладки предусмотрены интерфейсы JTAG, EJTAG и DFU.

Baikal T1
  • Процессор: Инженерный образец Baikal-T1, 2 ядра Р5600, архитектура mips32r5
  • Кэш-память 2-го уровня: 1Мб
  • Оперативная память: 4 ГБ DDR3-1600 без ЕСС
  • Энергонезависимая память: 16 МБ NAND Flash (boot), 128 МБ Flash (data), разъем под карту microSD
  • Ethernet: 1 х 10GbE (10GBASE-KR), 2 x 1GbE
  • 1 x PCIe Gen.3 x4, 2 x SATA 3.0, 2 × USB 2.0
  • 2 × SPI, 2 × UART, 2 × I2C, 32 x GPIO, JTAG, EJTAG, DFU
  • Формат питания: ATX
  • Форм-фактор: microATX

Помимо отладочной платы с установленной на ней СнК в комплект поставки входит необходимая документация, а также средства разработки ПО (компилятор, ядро Linux, образ минимальной файловой системы). Приобретателям тестового комплекта предоставляется техническая поддержка силами инженеров компании «Байкал Электроникс».

Toolchain

Компания «Байкал Электроникс» поставляет SDK, в состав которого входит toolchain, созданный на основе GCC версии 5.2.0, загрузчик U-Boot и ядро Linux.

Во вводной статье мы говорили о недостатках использования сторонних toolchain-ов и, естествено, в нашей работе, мы используем toolchain-ы собственной сборки.

Готовый toolchain для работы на 64-разрядных Linux машинах можно получить на нашем FTP-сервере в каталоге toolchains/x86_64. Выбирать здесь нужно последнюю версию архива с именем 'mipsel-P5600-linux-glibc-*.tar.gz'.

Для самостоятельной сборки toolchain-а, необходимо получить срез репозитория toolchains, например,

$ svn co http://svn.radix.pro/svn/toolchains/branches/toolchains-1.1.x toolchains

И выполнить команду make в соответствующем каталоге:

$ cd toolchains/products/P5600-glibc/1.1.2
$ make -j8

Напомним здесь, что перед сборкой необходимо подготовить каталог для инсталляции toolchain-а так, как это описано в разделе, посвященном загрузке toolchain-ов с нашего FTP-сервера.

Source Code

К сожалению, компания «Байкал Электроникс» не предоставляет доступ к репозиториям исходного кода ядра Linux и загрузчика, а лишь поставляет SDK в виде самораспаковывающегося архива. Это обстоятельство приводит к тому, что сторонние разработчики должны хранить громоздкие архивы вместо того, чтобы получать необходимые срезы репозиториев непосредственно перед сборкой.

Для обеспечения непрерывного процесса разработки мы сохраняем на своем FTP сервере ядро и загрузчик в виде отдельных архивов в каталогах linux и u-boot, соответственно.

Kernel

Порядок сборки и приготовления отчуждаемого пакета, можно найти в каталоге boot/kernel/bt1/4.4.24-4.08.84 репозитория платформы Radix.pro. Здесь представлена сборка ядра Linux версии 4.4.24. Суффикс 4.08.84 имени каталога соответствует версии SDK от компании «Байкал Электроникс».

Рассмотрев текст Make-файла в каталоге 4.4.24-4.08.84, нетрудно видеть порядок сборки ядра, а также то, что для отладочной платы комплекта ТК-Т1 следует выбирать конфигурацию ядра и дерево устройств с именами baikal_bfk*.

U-Boot

Сборка загрузчика осуществляется в каталоге boot/u-boot/bt1.

Поскольку мы не имеем отладочной платы ТК-Т1 и работаем по удаленному соединению со стендом компании «Байкал Электроникс», мы не можем обеспечить полную конфигурацию нашего загрузчика, достаточную для прошивки на целевое устройство. Однако в этом нет острой необходимости, поскольку загрузка операционной системы может быть осуществлена с помошью команд загрузчика уже прошитого в память.

Например, для загрузки с диска, подключенного к плате через SATA интерфейс, достаточно при включении питания войти в консоль загрузчика (с помощью клавиши <Enter>) и выполнить следующие команды:

BAIKAL # ext4load sata 0:1 0x85000000 /boot/uImage
BAIKAL # ext4load sata 0:1 0x85d00000 /boot/baikal_bfk.dtb
BAIKAL # setenv bootargs 'console=ttyS0,115200n8 ro root=/dev/sda1 rootfstype=ext4 earlyprintk=uart8250,mmio32,0x1F04A000,115200 maxcpus=2 nohtw nocoherentio ieee754=relaxed board_name=BFK board_serial=1603010451161110268 board_rev=1.6'
BAIKAL # bootm 0x85000000 - 0x85d00000

Пользователям системы Radix.pro нет необходимости самостоятельно заботиться о порядке размещения данных на диске. Как мы говорили в разделе Products Release вводной статьи, для записи загрузочного образа достаточно получить свежие файлы с FTP сервера, например, из каталога 1.1.630/p5600-glibc/bt1 и выполнить две следующие операции:

# cat bt1.boot-records bt1.ext4fs > HD.img
# dd if=HD.img of=/dev/sdc

Оставшееся место на диске можно распределить с помощью утилиты fdisk, например, создав дополнительный раздел для размещения домашних каталогов пользователей.


В заключение, необходимо отметить, что компания «Байкал Электроникс» уделяет большое внимание поддержке разработчиков программного и аппаратного обеспечения для устройств на базе процессора Baikal-T1.

Более того, в офисе компании «Байкал Электроникс» был развернут демонстрационный стенд оценочной платы процессора Baikal-T1 с удалённым доступом. Это даёт возможность разработчикам оборудования на базе данного процессора, не имеющим возможность приобрести плату, провести необходимое тестирование и оценить возможности продукта.

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