Baikal M1000

Российская система на кристалле Baikal M1000 для создания вычислительных устройств широкого назначения, таких как персональные машины, микросерверы, сетевое оборудование, встроенные системы и контроллеры, обладающие достаточно высокой производительностью и имеющие низкое энергопотребление.

На базе SoC BE-M1000 компании «Байкал Электроникс» создано множество материнских плат и плат для встроенных систем. Наверное, самыми распространенными можно считать материнские платы Эдельвейс TF307,

Сам SoC BE-1000 имеет восемь ядер Arm® Cortex™-A57, работающих на частоте 1.5 GHz, и поддерживает кэш L1, L2, and L3. Видеоподсистема включает два контроллера (LVDS and HDMI), а также HD видео декодер. Графический ускоритель Arm Mali™-T628 содержит восемь ядер.

Также SoC BE-M1000 содержит два контроллера памяти DDR3/4 и множество интерфейсов: PCIe Gen3, 10 Gb Ethernet, 1 Gb Ethernet, USB 3.0, USB 2.0, SATA 6G, eMMC/SD, I2S, SPI, UART, I2C, GPIO, и так далее. SoC соответствует технологии Arm TrustZone® и предоставляет все возможности, необходимые для создания надежных систем.

Hardware Features

Материнская плата Эдельвейс TF307 выполнена в форм-факторе mini-ITX и имеет следующие характеристики.

Baikal M1
  • Процессор: Baikal BE-M1000
  • Архитектура: Arm® Cortex-A57
  • Количество ядер: 8 (4 кластера по 2 ядра)
  • Максимальная частота: 1.5 ГГц
  • Оперативная память: DDR4-2133 (в том числе ЕСС)
  • Количество каналов: 2
  • Поддерживаемый объем: до 64 ГБ (до 2 модулей DIMM
  • Разъём: 2 x 288-pin DIMM socket
  • Возможности расширения: 1 × M.2 E(A)-Key (PCIe × 1 + USB 2.0); 1 × PCIe 3.0 × 8 slot
  • Сетевые возможности: 2 × Gigabit Ethernet, 1000Base-T (RJ-45)
  • Интерфейсы на задней панели: 1 × HDMI; 4 × USB 2.0; 2 × PS/2; 2 × RJ-45 1000Base-T; 1 × Линейный аудио-выход; 1 × Линейный аудио-вход; 1 × Вход микрофона
  • Интерфейсы для подключения передней панели: 1 × Разъём HD Audio; 1 × Разъём передней панели (кнопки, светодиоды); 2 × USB 3.0
  • Электропитание: ATX 24
  • Форм-фактор: mini-iTX
  • Габаритные размеры: 170 x 170 мм

Компактный и унифицированный дизайн платы позволяет построить любое десктопное решение, совместимое с форм-фактором mini-iTX.

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

Toolchain

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

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

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

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

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

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

$ cd toolchains/products/M1000-glibc/1.8.2
$ make -j8

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

Source Code

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

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

Поскольку компания «Байкал Электроникс» перешла на использование UEFI-загрузчика, прошитого в SPI NOR Flash, загрузочные образы операционных систем можно создавать с использованием GRUB.

Boot Image

В разделе Releases описан общий способ приготовления загрузочных образов Radix.Linux. Рассмотрим его еще раз, применительно к выпуску 1.9.1040.

Прежде всего, необходимо загрузить файлы baikal-m1.efi32fs, baikal-m1.ext4fs и write-efiboot-image на рабочую машину, работающую под управлением OS Linux из каталога baikal-m1 нашего FTP-сервера.

Скрипт write-efiboot-image позволяет записывать готовые образы, как на внешние носители, так и в файлы образов, подключенные через loopback-девайсы. Зля записи образа Radix.Linux на внешний USB-носитель, достаточно выполнить следующую команду:

# ./write-efiboot-image -e baikal-m1.efi32fs -r baikal-m1.ext4fs /dev/sdg

где, /dev/sdg – имя устройства в devfs внешнего USB-носителя.

В результате на USB-носителе вы найдете два раздела, один из которых будет содержать EFI-загрузчик, а второй – корневую файловую систему Radix.Linux. Оставшееся место на диске можно распределить с помощью утилиты fdisk, например, создав дополнительный раздел для размещения домашних каталогов пользователей (/home).

Теперь достаточно подключить USB-носитель к машине, собранной на основе Baikal M1000, и выбрать источник в интерфейсе UEFI-загрузчика Baikal.


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