Примечания к выпуску

2023.10

Уведомление по обновлению

  • Ядро Linux данной сборки несовместимо с прошивкой QSPI0 (sbl, ddrinit, TF-A, U-Boot) предыдущих версий. Для корректной работы требуется перепрошивка QSPI-флеш и eMMC/SD-карты модуля.

  • Для корректной работы требуется очистка секции переменных окружения QSPI0. Команды очистки секции см. Переменные окружения.

  • Данный релиз является последним с поддержкой ядра 4.19. Будущие релизы будут базироваться на ядре 5.10.

Основные изменения

  • Buildroot распространяется с ядром Linux 5.10 и 4.19.

  • В ядро 5.10 добавлена поддержка комплекта ELV-SMARC-CB 2.10.3 с установленным модулем ELV-MC03-SMARC r1.1.

  • U-Boot обновлён до v2023.04.

  • В U-Boot добавлена поддержка чтения заводских настроек из eMMC. В случае обнаружения и успешного чтения настроек U-Boot переводит раздел eMMC boot0 в стандартный режим Power-On write protect.

  • Добавлена опциональная поддержка загрузки по UEFI (для ядра 5.10). В артефакты сборки Buildroot добавлены образы GRUB и утилита tar2dev-uefi.

  • Тулчейн MIPS RISC0 GCC обновлён до версии r193114_10.2023-04-05.

  • Изменены скрипты сборки компонентов SBL, удалены фрагменты Buildroot поддержки модулей, сборка всех образов SPI модулей выполняется за один вызов Buildroot.

SBL, ddrinit

  • Компонент SBL переименован в SBL-XIP. В репозиторий добавлен компонент SBL-S1 для начальной поддержки загрузки через BootROM. Код SBL-S1 является экспериментальным.

  • Обновлены скрипты сборки SBL (подробнее см. в основных изменениях релиза).

  • ddrinit: Сокращено время инициализации DDR с ~900 мс на контроллер до ~30 мс.

U-Boot

  • Обновлён U-Boot до v2023.04.

  • Файлы *_defconfig поддержки модулей заменены единым файлом mcom03_defconfig.

  • Добавлена опциональная поддержка загрузки приложений UEFI, см. Загрузка ядра Linux.

  • Добавлена поддержка чтения заводских настроек из eMMC, см. Заводские настройки.

TF-A

  • Добавлен SiP-вызов для поддержки команды shutdown.

Linux

Изменения в ядре 5.10:

  • Добавлена поддержка ELV-SMARC-CB r2.10.3 с установленным ELV-MC03-SMARC r1.1, поддерживаемые интерфейсы модуля перечислены в Ядро Linux.

  • Исправлены ошибки сборки и работы ядра для стандартной конфигурации ядра ALT Linux std-def (исправлены драйверы QSPI, USB, I2C).

  • Повышена частота SD-карт в режиме HS с 31.25 МГц до 46.875 МГц.

  • Добавлена поддержка PCIe legacy interrupts.

  • В mcom03_defconfig включена поддержка EFI STUB и EFI DEBUG.

  • В DTS добавлены alias для установки имени устройства eMMC /dev/mmc0 в случае, если микросхема eMMC подключена к SDMMC1 (подробнее см. Заводские настройки).

  • Добавлено управление питанием приёмо-передатчиков PHY CAN (при отключенном интерфейсе can ядро будет отключать питание PHY).

  • Добавлена поддержка управления частотой devfreq в драйверах ISP, VPU.

  • В драйвере mfbsp-i2s добавлена поддержка режима мастера.

  • Драйвер drm_mcom03 разделён на два драйвера энкодеров mcom03-dsi и mcom03-dpi.

    Разделение позволяет динамически переключать вывод между DSI и параллельным выходом, при условии одновременного подключения двух видеовыходов.

  • Многочисленные обновления в драйвере mali-dp для поддержки DSI.

  • Добавлен драйвер irq-elvees-qlic контроллеров QLIC0, QLIC1. Драйвер перенесён из репозитория модуля ядра DSP.

  • В два раза увеличены частоты коммутаторов TOP и DDR для портов DSP.

  • Исправлены ошибки установки частоты в подсистеме devfreq.

Buildroot

  • Добавлен пакет external-mcom03/package/mcom03-baremetal-tools для сборки демонстрационных baremetal-приложений для RISC0 и ARM. Собранные образы доступны в директории buidroot/output/images/baremetal-tools.

  • Включен пакет GRUB2, добавлена утилита tar2dev-uefi, см. Загрузка ОС по UEFI.

  • Изменены скрипты сборки SBL (SBL-XIP, ddrinit, TF-A, U-Boot).

    Было:

    • U-Boot: U-Boot содержал множественные <board>_defconfig (например, configs/elvmc03q7-elvq7cb_defconfig). Файлы конфигурации отличались именем файла DTB прикрепляемого к образу U-Boot.

      Для сборки образов нескольких модулей требовалось многократно вызывать сборку U-Boot.

    • SBL: Скрипты сборки SBL собирали sbl-*.bin из образов SBL, ddrinit, TF-A, U-Boot (включая DTB).

      Для сборки образов нескольких модулей требовалось многократно вызывать сборку SBL.

    • Buildroot: Buildroot содержал множественные фрагменты поддержки модулей (external-mcom03/fragments/*.fragments).

      Для сборки образов нескольких модулей требовалось многократно вызывать сборку Buildroot.

    Стало:

    • U-Boot: содержит единый файл конфигурации mcom03_defconfig (удалены 10 файлов конфигурации). При сборке U-Boot собирается один образ U-Boot и множественные DTB модулей. При исполнении U-Boot считывает DTB с фиксированного адреса.

    • SBL: Скрипты сборки принимают конфигурационный файл со списком списков «образ ddrinit, образ U-Boot DTB», итерируют по списку, собирают образы sbl-xip-*.bin.

      При исполнении SBL-XIP загружает DTB по фиксированному адресу (перед запуском U-Boot).

      Сборка образов sbl-xip-*.bin выполняется за один вызов сборки SBL.

    • Buildroot: Удалены фрагменты поддержки плат (например, external-mcom03/fragments/rockpi.fragment). Добавлен конфигурационный файл SBL board/elvees/ddrinit-dtb-map.txt (путь до файла указывается в defconfig-опции BR2_MCOM03_DDRINIT_DTB_MAP).

      Не требуется применять фрагмент платы. Сборка образов sbl-xip-*.bin выполняется за один вызов сборки Buildroot.

Поддержка Elcore-50 DSP

  • ElcoreCL SDK обновлён до версии 1.2, см. «Примечания к выпуску» в документации https://dist.elvees.com/elcorecl/docs/1.2/html.

  • ElcoreNN SDK обновлён до версии 1.6.0, см. «Примечания к выпуску» в документации https://dist.elvees.com/elcorenn/docs/1.6.0/html.

  • В Buildroot добавлен пакет external-elcore50/toolchain/binutils-elcore50 c приложениями для работы с объектным кодом DSP (readelf, size, strip, objdump и т.п). Приложения собираются и устанавливаются под целевую платформу, приложения доступны на отладочном модуле по имени с префиксом elcore32-elvees-elf.

Поддержка Felix ISP

  • Для поддержки разных версий ядер выпускаются разные бинарные файлы поддержки ISP.

  • Добавлена поддержка сенсоров Sony IMX140, IMX327, IMX335, IMX415, IMX662 и GalaxyCore GC5035, GC8034.

Документация

  • В документации на Linux обновлено описание поддерживаемых модулей и интерфейсов, добавлено описание драйвера irq-elvees-qlic.

  • В документации на U-Boot добавлено описание поддержки заводских настроек, загрузки по UEFI.

  • В описании плагинов GStreamer уточнены команды запуска приёма видео с видеосенсора.

2023.03

Уведомление по обновлению

  • Ядро Linux данной сборки несовместимо с прошивкой QSPI0 (sbl, ddrinit, TF-A, U-Boot) предыдущих версий. Для корректной работы требуется перепрошивка QSPI-флеш и eMMC/SD-карты модуля.

  • Для корректной работы требуется очистка секции переменных окружения QSPI0. Команды очистки секции см. Переменные окружения.

Основные изменения

  • Добавлена поддержка контроллеров CAN, MFBSP0 I2S, PWM, QSPI1.

  • Добавлена поддержка CPUFreq для CPU и devfreq для DSP.

  • Добавлена поддержка линейного выхода аудио и микрофона на ROCK Pi N10 и SMARC-CB.

  • Добавлена поддержка HDMI-аудио на ROCK Pi N10 и SMARC-CB.

  • U-Boot обновлён до версии 2022.10.

  • Добавлена поддержка сборки в Ubuntu 2022.04 (файл Dockerfile.ubuntujammy).

  • Выпускаемые исходные коды переведены на сборку в среде Dockerfile.centos8stream.

    Важно

    Dockerfile.centos7 оставлен для совместимости, будет удалён в будущих выпусках.

  • Добавлен фрагмент external-mcom03/fragments/linux510.fragment с начальной поддержкой ядра 5.10. В ядре поддержаны интерфейсы модулей ELV-MC03-SMARC, ROCK Pi N10, ELV-SMARC-CB поддержанные в 4.19 за исключением компонентов поддержки ввода видео GStreamer Felix ISP.

    Важно

    Данные примечания к выпуску описывают изменения в Buildroot c ядром 4.19. Следующие выпуски Buildroot будут базироваться на ядре 5.10. Поддержка ядра 4.19 в будущих выпусках будет прекращена.

U-Boot

  • U-Boot обновлён до версии 2022.10.

  • Изменено смещение переменных окружения c 0x100000 на 0xFE0000.

  • Добавлен скрипт tools/mcom03-fw-update.sh для обновления прошивки SPI из Linux устройства.

  • Добавлен и включен драйвер mcom03-wdt с реализацией сброса WDT0 через SiP-вызовы TF-A.

  • Добавлена поддержка USB 3.0 (ранее поддерживался только USB 2.0).

TF-A

  • Добавлен SiP-сервис (Silicon Provider) для обработки запросов по управлению WDT0.

Linux

  • Добавлена поддержка контроллеров CAN0, CAN1 (драйвер mfbsp-can).

  • Добавлена поддержка контроллеров MFBSP0 I2S.

  • Исправлена поддержка контроллера UART3.

  • Добавлена поддержка контроллера PWM (драйвер pwm-mcom).

  • Ограничен размер буфера контроллера SPI0 для обхода ошибки переполнения буфера.

  • Добавлен и включен драйвер mcom03-wdt с реализацией сброса WDT0 через SiP-вызовы TF-A.

  • Добавлено описание пинов MFBSP0, MFBSP1 в режиме GPIO.

  • Добавлена поддержка выбора источника частоты USB Phy с внутренней PLL.

  • Добавлен драйвер CPUFreq (по умолчанию включен Ondemand governor).

  • Добавлена поддержка полудуплексного режима Ethernet.

  • Драйверы pinctrl:

    • Добавлена поддержка управления падами NAND, QSPI1.

    • Добавлено отключение падов параллельного порта DP при выводе на DSI.

  • Поддержка DSP:

    • Понижена частота DSP с 459 МГЦ до 432 МГц для повышения стабильности работы стресс-тестов.

    • Добавлена поддержка управления частотой DSP devfreq (по умолчанию включен performance governor).

Buildroot

  • external-mcom03:

    • Включена сборка пакетов поддержки CAN, ethtool, утилиты mcom03-fw-update.sh.

    • В overlay добавлен файл конфигурации ALSA для ROCK Pi N10.

  • В /etc/os-release добавлен UUID CI-сборки.

  • Исправлена ошибка компиляции Qt5.

  • Файл images/output/sbl.bin перенесён в images/output/sbl/sbl.bin.

Поддержка VPU ARM Mali V61

  • В GStreamer-плагине gst-omx исправлены ошибки.

Поддержка Elcore-50 DSP

  • ElcoreCL SDK обновлён до версии 1.1, см. «Примечания к выпуску» в документации https://dist.elvees.com/elcorecl/docs/1.1/html.

  • ElcoreNN SDK обновлён до версии 1.4.0, см. «Примечания к выпуску» в документации https://dist.elvees.com/elcorenn/docs/1.4.0/html.

  • В Buildroot переименованы пакеты поддержки DSP:

    • external-elcore50/package/velcore3-driver в external-elcore50/package/elcore50-km.

  • см. также «Поддержка DSP» в главе с описанием изменений в ядре Linux.

Поддержка Felix ISP

  • Добавлена поддержка IMX219 на ROCK Pi N10.

  • Обновлены команды примеров запуска приёма видео.

Поддержка ROCK Pi N10

  • Включен режим High Speed для SD-карты (частота шины ~31 МГц).

  • Добавлена поддержка аудио на HDMI.

  • Добавлена поддержка линейного выхода аудио и микрофона.

Поддержка ELV-SMARC-CB

  • Добавлена поддержка аудио на HDMI.

  • Добавлена поддержка линейных входа, выхода аудио и микрофона.

  • Добавлена поддержка CAN0, CAN1.

  • Добавлено управление вентилятором (контроллер EMC2303) в зависимости от температуры MCom-03.

  • Добавлена поддержка DSI-дисплея RPi.

Документация

  • В описании U-Boot добавлены инструкции по сбросу и очистке переменных окружения.

  • Обновлены поддерживаемые интерфейсы в описании ядра Linux.

  • Добавлена инструкция по сборке Buildroot с ядром 5.10.

  • Добавлена глава с описанием тулчейнов Buildroot.

2022.09

Важно

Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI-флеш и eMMC/SD-карты модуля.

Основные изменения

  • Добавлена поддержка DDR High — увеличен объем доступной памяти ОЗУ в Linux (до 7.5 ГБ на модулях ELV-MC03-SMARC):

    • Обновлены компоненты sbl, ddrinit, TF-A, U-Boot, Linux.

    • Тулчейн toolchain-mipsel-elvees-elf32 MIPS RISC0 обновлен до версии r184962_6.2022-05-17 (GCC 11.2.0).

    • Обновлен скрипт external-mcom03/contrib/mcom03-boot.mdb для загрузки образов TF-A и U-Boot в DDR High.

    • Пример распределения памяти ОЗУ ELV-MC03-SMARC (установлено 8 ГБ DDR):

      • 0.5 ГБ для DDR Low RISC0 (например, ПО доверенной загрузки, по 0.25 ГБ на DDR-контроллер).

      • 1 ГБ зарезервирован для корректной работы драйверов выполняющих atomic allocation. Резервирование выполнено в файле /etc/sysctl.d/vm-min-free-kbytes.conf rootfs.

      • Объём памяти для пользовательских приложений ~6 ГБ (поле available команды free).

  • Добавлена поддержка программной перезагрузки в Linux (команда reboot). Подробнее см. Поддержка Watchdog.

  • GStreamer-плагины в бинарном виде Felix ISP добавлены в основную сборку Buildroot.

  • Добавлен пакет ElcoreNN SDK — набор средств разработки для запуска нейросетей на DSP.

  • Добавлена поддержка переменных окружения QSPI0 U-Boot в ОС Linux.

  • Добавлена поддержка модулей:

    • ELV-SMARC-CB r1.0 с установленным модулем ELV-MC03-SMARC r1.1.

    • ELV-MC03-CB r1.1.0 с установленным модулем ELV-MC03 r2.0.

  • Обновлена документация:

    • Дистрибутив Buildroot — добавлены главы по прошивке eMMC, обзору загрузки ОС, запуску ОС на ROCK Pi N10.

    • Ядро Linux — добавлены главы с описанием поддерживаемых интерфейсов модулей.

ddrinit

  • Добавлена поддержка VMMU RISC0.

  • Добавлена поддержка DDR High.

  • Добавлена начальная поддержка загрузки в режиме BootROM.

U-Boot

  • Добавлена поддержка режима Quad в драйвере Silvaco QSPI.

  • Добавлена установка переменных окружения при первичной загрузке модуля (если область переменных в QSPI0 была пустая).

  • Исправлено зависание при чтении с QSPI.

  • Добавлена поддержка I2C в U-Boot (по умолчанию I2C включен для модуля MCom-03 BuB).

TF-A

  • Добавлена поддержка BL32.

  • Добавлена поддержка отключения CPU в PSCI.

Linux

  • Добавлена поддержка загрузки Linux с использованием DDR High-диапазона (обновлены драйверы PCIe, Ethernet, SDMMC, USB).

  • Добавлена поддержка Ethernet multicast.

  • Добавлена поддержка Ethernet 10 Mbit/s.

  • Добавлена поддержка DSI-дисплеев B101UAN01.7, U101FP05.

  • Добавлена поддержка DesignWare SPI0.

  • Добавлен драйвер Silvaco QSPI в Linux (QSPI0).

  • Исправлен неправильный clk_rate для VPU в драйвере частот.

  • Отключен вывод видео на параллельный порт при выводе на DSI-дисплей.

Buildroot

  • Добавлены утилиты чтения/установки переменных окружения U-Boot в Linux fw_printenv, fw_setenv (Buildroot пакет uboot-tools).

  • Пакет wget заменён с версии BusyBox на стандартный (доступен расширенный набор опций утилиты).

  • Добавлен бенчмарк f3 (Fight Flash Fraud) — набор утилит для тестирования Flash-накопителей.

  • Включена сборка пакета collectd (сервис сбора статистики о системе). systemd-сервис выключен по умолчанию.

  • Включена сборка пакетов поддержки SATA, IIO, NFC, NMEA — smartmontools, libiio, libnfc, gpsd.

Поддержка VPU ARM Mali V61

  • В GStreamer-плагине gst-omx реализована поддержка поворота изображения на 90°, 180°, 270° при кодировании.

  • В GStreamer-плагине gst-omx добавлена поддержка отражения входных кадров при кодировании.

  • Добавлена поддержка параметра qfactor для элемента omxmjpegenc GStreamer-плагина gst-omx.

  • Обновлена документация плагинов (см. Поддержка аппаратных блоков в GStreamer).

Поддержка Elcore-50 DSP

  • Обновлен тулчейн DSP Elcore-50 до версии r1613_806_2022.07.19.

  • В Buildroot интегрирован ElcoreNN SDK 1.3.1 — набор средств разработки для запуска нейросетей на DSP:

  • Библиотека ElcoreCL и драйверы Elcore-50 обновлены до версии 1.0:

    • Опубликована документация Elcore-50 SDK:

      Разработаны инструкции по запуску hello-world на DSP в Buildroot (Buildroot-пакет elcorecl-examples), профилированию, управления задачами DSP. Добавлено описание утилит elcorectl, elcorecl-run.

    • Включены Buildroot-пакет профилирования драйвера elcore50 (python-elcorecl).

    • Добавлена поддержка профилирования gprof DSP-приложений.

    • Обновлен механизм сборки DSP-приложений в ElcoreCL:

      • cmake-модуль ElcoreProject был удален из субмодуля lib/cmake и перенесен в пакет библиотеки ElcoreCL.

      • cmake-макрос elcoreproject_add() теперь доступен после подключения библиотеки ElcoreCL через find_package().

    • Исправлены исключения по чтению и записи на вершине стека при использовании «круглых» адресов.

    • Исправлены утечки памяти в драйвере DSP при запуске приложений с использованием elcorecl-run.

    • Оптимизирован драйвер QLIC — уменьшено количество обращений к регистрам QLIC в обработчике прерывания.

Поддержка Felix ISP

  • Компоненты поддержки Felix ISP перенесены в основную сборку Buildroot.

  • Добавлена поддержка библиотеки gpiod для управления питанием и сбросами сенсоров.

  • Добавлено автоопределение конфигурации сенсоров OV2718 в зависимости от ревизии сенсоров.

Поддержка ELV-SMARC-CB

  • Добавлена поддержка сборки Buildroot для ELV-MC03-SMARC r1.0 в составе ELV-SMARC-CB r1.0 (фрагмент elvsmarccb.fragment). Подробнее см. Ядро Linux.

Поддержка ELV-MC03-CB

  • Добавлена поддержка сборки Buildroot для ELV-MC03 r2.0 в составе ELV-MC03-CB r1.1.0 (фрагмент elvmc03cb.fragment).

Поддержка NGFW-CB

  • Добавлена поддержка GPIO-расширителя TCA6416ARTWR.

  • Добавлена поддержка интерфейса 1-Wire на DS2482.

  • В Buildroot включен пакет с прошивками для работы Wi-Fi модулей на основе Atheros QCA6174.

  • В Linux-драйвере lan743x исправлена автозагрузка при работе с устройствами на основе Microchip LAN743x PCI Express Gigabit Ethernet.

  • Исправлены ошибки при работе uSD-карты (SDMMC1).

Поддержка EGW-CB

  • Добавлена поддержка сборки Buildroot для EGW-PM r1.0 в составе EGW-CB r1.1 (фрагмент egwcb.fragment).

  • Добавлена поддержка GPIO-расширителя MCP23017.

  • Добавлена поддержка модуля Lora RAK2287.

  • Добавлена поддержка модуля Wi-Fi SparkLAN WNFQ-261ACNI(BT).

  • Поддержка сенсоров температуры LM73.

  • Добавлена поддержка Micro Crystal RV-8803 RTC.

2022.06

Важно

Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI-флеш и eMMC/SD-карты модуля.

  • Исправлена настройка частот в SBL, ddrinit. Некорректная настройка приводила к зависаниям при параллельной работе нескольких ведущих на шине AXI.

  • Тулчейн Codescape MIPS заменён на тулчейн MIPS от АО НПЦ ЭЛВИС (рецепт сборки для тулчейна см. директории external-mcom03). Тулчейн от ЭЛВИС реализует обходы аппаратных ошибок RISC0. Обновлён Dockefile.ubuntufocal для поддержки тулчейна.

  • Добавлен архив с тулчейнами (aka Buidroot SDK), см. файл images/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz.

  • ddrinit портирован с ARM CPU на MIPS RISC0. Время инициализации DDR увеличилось до 1 с. ddrinit может быть оптимизирован в будущих версиях.

  • TF-A обновлён до версии 2.6.

  • В GStreamer-плагинах добавлена поддержка кодирования и декодирования H.265, кодирования MJPEG.

  • В U-Boot в драйвере NAND-контроллера отключена поддержка подстраниц (subpage) — контроллер не поддерживает подстраницы.

Поддержка Felix ISP:

  • Добавлена сборка с GStreamer-компонентами gst-felix для поддержки Felix ISP. Примеры запуска видеосенсора OV5647 на ROCK Pi N10 с установленным модулем ELV-MC03-SMARC r1.1 см. ISP Felix v2505.

  • В драйвере ISP поддержано отключение частот при отключенном приёме видео.

  • Компоненты поддержки Felix ISP доступны в сборке rockpi-private и будут перенесены в основную сборку rockpi в будущих версиях.