Allwinner Nezha: различия между версиями
Строка 17: | Строка 17: | ||
SPL (Secondary Program Loader) является промежуточным этапом загрузки платы и служит для инициализации контроллера памяти и загрузки следующего загрузчика. В качестве SPL в Allwinner Nezha используется Boot0. Собрать из исходников и записать его на флешку можно по следующей инструкции: | SPL (Secondary Program Loader) является промежуточным этапом загрузки платы и служит для инициализации контроллера памяти и загрузки следующего загрузчика. В качестве SPL в Allwinner Nezha используется Boot0. Собрать из исходников и записать его на флешку можно по следующей инструкции: | ||
git clone https://github.com/smaeul/sun20i_d1_spl -b mainline | git clone https://github.com/smaeul/sun20i_d1_spl -b mainline | ||
cd sun20i_d1_spl | |||
make CROSS_COMPILE=riscv64-linux-gnu- p=sun20iw1p1 mmc | make CROSS_COMPILE=riscv64-linux-gnu- p=sun20iw1p1 mmc | ||
sudo dd if=nboot/boot0_sdcard_sun20iw1p1.bin of=/dev/sdX bs=8192 seek=1 | sudo dd if=nboot/boot0_sdcard_sun20iw1p1.bin of=/dev/sdX bs=8192 seek=1 | ||
=== OpenSBI + U-Boot === | === OpenSBI + U-Boot === | ||
Версия от 18:08, 31 мая 2022
Allwinner Nezha — первая общедоступная плата на базе Allwinner D1 (sun20iw1p1). Официальная документация предоставлена на сайте awol
Версии платы
На данный момент существует 2 версии платы:
- D1_DEV_DDR3_16X2_V1_0
- D1_DEV_DDR3_16X2_V1_2
Информация на данной странице актуальна для V1_2.
Tina Linux
Плата поставляется с установленной на SPI Tina Linux
Процесс загрузки платы
Кратко, процесс загрузки можно описать так: bootROM -> SPL -> OpenSBI -> U-Boot -> extlinux -> Linux kernel Сразу после включения питания платы процессор получает первые команды из ПЗУ(bootROM), эти команды передают управление вторичному загрузчику SPL, находящемуся на съемном носителе (microSD).
SPL
SPL (Secondary Program Loader) является промежуточным этапом загрузки платы и служит для инициализации контроллера памяти и загрузки следующего загрузчика. В качестве SPL в Allwinner Nezha используется Boot0. Собрать из исходников и записать его на флешку можно по следующей инструкции:
git clone https://github.com/smaeul/sun20i_d1_spl -b mainline cd sun20i_d1_spl make CROSS_COMPILE=riscv64-linux-gnu- p=sun20iw1p1 mmc sudo dd if=nboot/boot0_sdcard_sun20iw1p1.bin of=/dev/sdX bs=8192 seek=1
OpenSBI + U-Boot
Зпуск Simply с ядром 5.4.61 из федоры
Для эксперимента взял образ федоры https://openkoji.iscas.ac.cn/pub/dl/riscv/Allwinner/Nezha_D1/images-release/Fedora/fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20220104-012902.n.0-sda.raw.zst fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20220104-012902.n.0-sda.raw
Создал с помощью kpartx loop device из образа, примонтировал. Забыкапил модули ядра очистил корневой раздел, чтобы
slinux-10.0-riscv64.img.xz
Отладка
Подключение к UART
В комплекте с платой предоставляется UART адаптер, с помощью которого можно подключиться к плате следующим образом:
Черный -> GND
Зеленый -> RX
Белый -> TX
На хосте, с которого осуществляется подключение выполнить команду:
picocom -b 115200 /dev/ttyUSB0
Запуск Simply 10.0 с ядром 5.4.61
Для эксперименты бал взят образ fedora-riscv64-d1-developer-xfce-rawhide-Rawhide-20220104-012902.n.0-sda.raw.