From Fedora Project Wiki
No edit summary
Line 115: Line 115:


The '''u-boot.bin''' and '''u-boot.dtb''' will be used to make '''u-boot.toc1''' below.
The '''u-boot.bin''' and '''u-boot.dtb''' will be used to make '''u-boot.toc1''' below.


===== Build u-boot.toc1 =====
===== Build u-boot.toc1 =====


toc1.cfg:
* toc1.cfg:
<pre>
<pre>
[opensbi]
[opensbi]
Line 132: Line 131:
</pre>
</pre>


build command:
* build command:
<pre>
<pre>
pushd u-boot
pushd u-boot

Revision as of 08:34, 5 September 2021

Nezha is a SBC based on Allwinner D1. This is a placeholder page to collect all information about running Fedora on Nezha.

Simple HOWTO

Prebuild Image

we have made the prebuild Fedora Image for Allwinner D1: Fedora-riscv64-d1-developer-xfce-with-esp-Rawhide-20210723-173234.n.0-sda.raw.zst

For booting it on D1, what you need to do just:

Decompress

unzstd  Fedora-riscv64-d1-developer-xfce-with-esp-Rawhide-20210723-173234.n.0-sda.raw.zst`

Flash into a SD card (>= 16GB)

sudo dd if=Fedora-riscv64-d1-developer-xfce-with-esp-Rawhide-20210723-173234.n.0-sda.raw of=/dev/sdX status=progress

insert the SD card and power up

  • default display is LCD (vertical):
Allwinner D1 LCD.jpg
  • (optional) switch display to HDMI (1080p mode, vertical)
cd /sys/kernel/debug/dispdbg
echo disp0 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;

Hardware info

IP info

T-Head: XuanTie C906 RISC-V

Soc & Development boardinfo

Allwinner: D1 SoC Introduction

Sunxi: D1

Sunxi: Allwinner Nezha

Software

Boot order allwinner nezha grub.png

Original source code

Allwinner: Allwinner Customer Service Platform Portal
You need to register and login.

Or you can download then from SUNXI website

FYI: Smaeul's REPO

Tekkaman REPO for Fedora Image

Firmware Build order

Build order allwinner nezhe grub.png

SPL(Boot0)

boot0 or SPL (Secondary Program Loader) which the first stage after BootROM, it is responsible for initializing DRAM and loading next stage firmware from storage(Flash or SD).

Using Smaeul SPL directly.

Build binary
git clone https://github.com/smaeul/sun20i_d1_spl
pushd sun20i_d1_spl
git checkout origin/mainline
make CROSS_COMPILE=riscv64-linux-gnu- p=sun20iw1p1 mmc
popd
Flash to SD card
pushd sun20i_d1_spl
sudo dd if=nboot/boot0_sdcard_sun20iw1p1.bin of=/dev/sdX bs=512 seek=16

OpenSBI

RISC-V Open Source Supervisor Binary Interface, like arm-TF

Using Smaeul's patches, but rebase to the latest upstream OpenSBI, and fix some issue.

Tekkaman's OpenSBI REPO

Build binary
git clone https://github.com/tekkamanninja/opensbi -b allwinner_d1
pushd opensbi
CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic FW_PIC=y make
popd

The build/platform/generic/firmware/fw_dynamic.bin will be used to make u-boot.toc1 below.

U-boot

Using Smaeul's patches, but enable more features and add some default env for auto-booting into GRUB, and also rebase to the latest upstream U-boot.

Tekkaman's OpenSBI REPO

Build binary
git clone https://github.com/tekkamanninja/u-boot -b allwinner_d1
pushd u-boot
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv nezha_defconfig
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv u-boot.bin u-boot.dtb
popd

The u-boot.bin and u-boot.dtb will be used to make u-boot.toc1 below.

Build u-boot.toc1
  • toc1.cfg:
[opensbi]
file = fw_dynamic.bin
addr = 0x40000000
[dtb]
file = u-boot.dtb
addr = 0x44000000
[u-boot]
file = u-boot.bin
addr = 0x4a000000
  • build command:
pushd u-boot
cp ${PATH_TO_TOC1_CFG}/toc1.cfg ${PATH_TO_OPENSBI}/fw_dynamic.bin .
tools/mkimage -T sunxi_toc1 -d toc1.cfg  u-boot.toc1
popd
Flash to SD card
pushd u-boot
sudo dd if=u-boot.toc1 of=/dev/sdX bs=512 seek=32800