СКИФ
Как прошить eMMC через SSH
- Загрузить модуль с SD
- Узнать IP платы (
ifconfig
) - Загрузить на ПК:
- rootfs нужного дистрибутива (В данном примере AltLinux)
- tar2dev
- Выполнить прошивку командой
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
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