Allwinner Nezha: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{Stub}}
{{Stub}}
Allwinner Nezha — первая общедоступная плата на базе Allwinner D1 (sun20iw1p1). Официальная документация предоставлена на сайте [https://d1.docs.aw-ol.com/ awol]
 
Allwinner Nezha — первая общедоступная плата на базе [[Allwinner D1]]. Официальная документация предоставлена на сайте [https://d1.docs.aw-ol.com/ awol]
 
Плата поддерживается [[Ports/riscv64|портом Сизифа на архитекуру riscv64]].
 
== Версии платы ==
== Версии платы ==
На данный момент существует 2 версии платы:
На данный момент существует 2 версии платы:
* D1_DEV_DDR3_16X2_V1_0
* D1_DEV_DDR3_16X2_V1_0
Строка 7: Строка 12:
Информация на данной странице актуальна для V1_2.
Информация на данной странице актуальна для V1_2.


== Tina Linux ==
== Ядра и загрузчики ==
Плата поставляется с установленной на SPI Tina Linux


== Процесс загрузки платы ==
Загрузчик собран в пакет [https://packages.altlinux.org/en/sisyphus_riscv64/srpms/u-boot-sunxi-riscv/ u-boot-sunxi-riscv].
Кратко, процесс загрузки можно описать так:
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 из федоры ==
Ядро un-def загружается, начиная с версии 6.6. Отдельное ядро d1-un поддерживает больше перифирии, включая вывод на HDMI.
Для эксперимента взял образ федоры
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 из образа, примонтировал.
{| class="wikitable"
Забыкапил модули ядра
|-
очистил корневой раздел, чтобы
! Устройство      !! d1-un<br>5.19 !! un-def<br>6.6.19 !! d1-un<br>6.1
|-
| SD Card Reader || {{Ok}}  ||  {{Ok}}  || {{Ok}}
|-
| NAND FLASH (mtd) || {{Ok}}  ||  {{Fail}}  || {{Ok}}
|-
| Ethernet  || {{Ok}}  ||  {{Ok}} || {{Ok}}
|-
| USB 2.0  || {{Ok}}  ||  {{Ok}} || {{Ok}}
|-
| USB OTG  || {{Ok}}  ||  {{Fail}} || {{Ok}}
|-
| HDMI output  || {{Fail}}  ||  {{Fail}} || {{Ok}}
|-
| MIPI DSI  || ?  ||  {{Fail}} || ?
|-
| Wifi  || {{Fail}}  ||  {{Fail}} || {{Fail}}
|-
| Bluetooth  || {{Fail}}  ||  {{Fail}} || {{Fail}}
|-
| User LED  || {{Ok}}  ||  {{Fail}} || {{Ok}}
|-
| Video In (CSI)  || ?  ||  ? || ?
|-
| audio jack  || {{Ok}}  ||  {{Fail}} || {{Ok}}
|-
| Mic Array In  || ?  ||  ? || ?
|}


slinux-10.0-riscv64.img.xz
Легенда
 
* {{Ok}} -- устройство работает с этим ядром
* {{Fail}} -- устройство не работает с этим ядром
* ? -- устройство не тестировалось с этим ядром


== Отладка ==
== Отладка ==
=== Подключение к UART ===  
=== Подключение к UART ===  
В комплекте с платой предоставляется UART адаптер, с помощью которого можно подключиться к плате следующим образом:
В комплекте с платой предоставляется UART адаптер, с помощью которого можно подключиться к плате следующим образом:
<br>Черный -> GND
<br>Черный -> GND
Строка 40: Строка 65:
<br>На хосте, с которого осуществляется подключение выполнить команду:
<br>На хосте, с которого осуществляется подключение выполнить команду:
<code>picocom -b 115200 /dev/ttyUSB0</code>
<code>picocom -b 115200 /dev/ttyUSB0</code>
== Компиляция ядра из оригинального исходного кода ==
=== Получение исходного кода ===
# Перейдите на [https://open.allwinnertech.com/ платформу обслуживания клиентов Allwinner] и зарегистрируйтесь.
# Войдите в свою учетную запись и добавьте свой публичный ключ.
## Для этого перейдете в скачать -> управление ключами -> создать [[Файл:Awpubkeys.png|мини|без]]
## В открывшейся форме укажите свой username и добавьте открытый ключ
# Загрузите скрипт загрузки SDK:
##Замените "username" на свое и выполните следующую команду:<br><code>git clone ssh://username@sdk.allwinnertech.com/git_repo/repo</code>
##Откройте файл ./repo/repo и замените username в следующей строке:<br><code>REPO_URL = 'ssh://voropaevdmtr@sdk.allwinnertech.com/git_repo/repo.git'</code>
#Загрузите исходный код
  $ mkdir tina-d1-h
  $ cd tina-d1-h
  $ repo/repo init -u ssh://username@sdk.allwinnertech.com/git_repo/D1_Tina_Open/manifest.git -b master -m tina-d1-h.xml
  $ repo/repo sync
  $ repo/repo start product-smartx-d1-h-tina-stable-v2.0 --all # После завершения всех загрузок создайте ветку
Возможно, перед выполнением команд вам потребуется создать симлинк:
  $ sudo ln -s /usr/bin/python2 /usr/bin/python
=== Компиляция ===
# Перейдите в каталог <code>./lichee/linux-5.4</code>
# Выполните следующую последовательность команд:
  cp arch/riscv/configs/sun20iw1p1_d1_defconfig .config
  make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv olddefconfig
  make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv
  make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv INSTALL_PATH=${RISCV_ROOTFS_BOOT} install
  make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv INSTALL_MOD_PATH=${RISCV_ROOTFS} modules_install
[[Категория:RISC-V]]
== Другие поддерживаемые ОС ==
* [https://d1.docs.aw-ol.com/strong/strong_6debianbysipeed/ Debian от Sipeed]
* [https://d1.docs.aw-ol.com/strong/strong_4debian/ Debian от PerfXLab]
* [https://fedoraproject.org/wiki/Architectures/RISC-V/Allwinner/zh-cn Fedora] ([https://openkoji.iscas.ac.cn/pub/dl/riscv/Allwinner/Nezha_D1/images-release/Fedora/ скачать])
* [http://dl.slarm64.org/slackware/images/nezha/ slarm64]
== Документация ==
* [https://www.aw-ol.com/downloads?cat=8 awol.com]
* [https://ovsienko.info/D1/ дополнительно]

Версия от 13:19, 26 марта 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Allwinner Nezha — первая общедоступная плата на базе Allwinner D1. Официальная документация предоставлена на сайте awol

Плата поддерживается портом Сизифа на архитекуру riscv64.

Версии платы

На данный момент существует 2 версии платы:

  • D1_DEV_DDR3_16X2_V1_0
  • D1_DEV_DDR3_16X2_V1_2

Информация на данной странице актуальна для V1_2.

Ядра и загрузчики

Загрузчик собран в пакет u-boot-sunxi-riscv.

Ядро un-def загружается, начиная с версии 6.6. Отдельное ядро d1-un поддерживает больше перифирии, включая вывод на HDMI.

Устройство d1-un
5.19
un-def
6.6.19
d1-un
6.1
SD Card Reader Test-result-pass.png  Test-result-pass.png  Test-result-pass.png 
NAND FLASH (mtd) Test-result-pass.png  Test-result-fail.png  Test-result-pass.png 
Ethernet Test-result-pass.png  Test-result-pass.png  Test-result-pass.png 
USB 2.0 Test-result-pass.png  Test-result-pass.png  Test-result-pass.png 
USB OTG Test-result-pass.png  Test-result-fail.png  Test-result-pass.png 
HDMI output Test-result-fail.png  Test-result-fail.png  Test-result-pass.png 
MIPI DSI ? Test-result-fail.png  ?
Wifi Test-result-fail.png  Test-result-fail.png  Test-result-fail.png 
Bluetooth Test-result-fail.png  Test-result-fail.png  Test-result-fail.png 
User LED Test-result-pass.png  Test-result-fail.png  Test-result-pass.png 
Video In (CSI) ? ? ?
audio jack Test-result-pass.png  Test-result-fail.png  Test-result-pass.png 
Mic Array In ? ? ?

Легенда

  • Test-result-pass.png  -- устройство работает с этим ядром
  • Test-result-fail.png  -- устройство не работает с этим ядром
  • ? -- устройство не тестировалось с этим ядром

Отладка

Подключение к UART

В комплекте с платой предоставляется UART адаптер, с помощью которого можно подключиться к плате следующим образом:
Черный -> GND
Зеленый -> RX
Белый -> TX
На хосте, с которого осуществляется подключение выполнить команду: picocom -b 115200 /dev/ttyUSB0