Перейти к основному содержимому

Встраиваемое ПО

Как прошить eMMC через SSH

  1. Загрузить модуль с SD
  2. Узнать IP платы (ifconfig)
  3. Загрузить на ПК:
    • rootfs нужного дистрибутива (В данном примере AltLinux)
    • tar2dev
  4. Выполнить прошивку командой
ssh root@<board_ip> zcat | ROOT=/dev/mmcblk0p1 FDT=mcom03-elvmc03smarc-r1.0-rockpi-n10.dtb \
./tar2dev -s sshd - /dev/mmcblk0 < mcom03-altlinux-rootfs-*.tar.gz

Где:

board_ip - IP адрес платы RockPI

-s sshd - systemd сервисы, которые нужно включить

В результате на eMMC память будет прошит AltLinux и будет включен sshd. Основное руководство - https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#sd

Существует ли какой-нибудь документ по запуску "пустой" платы со СКИФом, когда в qSPI и eMMC еще ничего нет?

Режимы загрузки описаны здесь: https://support.elvees.com/docs/Microchips/SKIF/hw-guide

Спецификация BootROM, отправляется по запросу на почту.

Также есть страница https://dist.elvees.com/mcom03/docs/linux-sdk/2022.09/design/boot-flow.html.

При запуске на модулях ELV-MC03-SMARC-R (RockPI) Buildroot возникает проблема:

Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
Reading file would overwrite reserved memory
Failed to load '/boot/extlinux/extlinux.conf'
Error reading config file
SCRIPT FAILED: continuing...
"Synchronous Abort" handler, esr 0x96000005

При перепрошивке qspi-flash (https://github.com/elvees/mcom03-flash-tools) эта область не перезаписывается. Поскольку в релизе от сентября изменился объем доступной DDR-памяти, адреса также изменились. Для решения проблемы следует сбросить env. Для этого во время загрузки U-boot нужно зайти в консоль uboot и ввести следующие команды:

env default -a
saveenv
boot

Как измерить время на DSP-ядре ElCore50 в тактах либо в наносекундах?

Можно читать счетчик тактов:

asm volatile("tcd tic_cntr, %0" : "=r"(value) : :);

Можно ли использовать CMOS1_CLK? Или только CMOS0?

Для использования cmos1_clk необходимо в dts для ноды display_encoder в свойстве clocks изменить MEDIA_CMOS0_CLK на MEDIA_CMOS1_CLK. При этом свойство clock-names необходимо оставить без изменений.

Где можно найти информацию как процессор инициализируется во время загрузки?

Обзор загрузки представлен тут - https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#boot-flow

Как скомпилировать Qt-проект для запуска на плате?