A minimalistic development board designed for the Cortex-A53 Allwinner H616 SoC using KiCad
Loading README and project media…
A minimalistic development board designed for the Cortex-A53 Allwinner H616 SoC using KiCad
The goal of this project, based on the schematics of Orange Pi Zero 2 and Orange Pi Zero 3, was to create a minimalistic development board for the H616 SoC with a functional DDR3/LPDDR4 topology and power supply. This allows it to be used as a basic design that can be modified for specific applications.
Both versions of the board are powered by the 64-bit 1.5GHz Quad-Core Cortex-A53 Allwinner H616 SoC, supporting either Allwinner H616 or its pin-to-pin compatible successor, Allwinner H618. The primary difference between these chips is the increased L2 cache size in the H618 model.
The DDR3 variant features a compact design optimized for simplicity and ease of learning. Key components include:
The LPDDR4 variant offers enhanced capabilities tailored for my specific application, while also remaining suitable for educational use:
To power the board via USB and connect external devices, a custom USB board adapter is available.
There are PDF documents available for both DDR3 and LPDDR4 versions.
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h616 RESET_TO_BL31=1
After building, copy the bl31.bin file to the U-Boot sources directory.
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- orangepi_zero2_defconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- BL31=bl31.bin
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
Example sources for arm64 rootfs:
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1k count=1023 seek=1
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8
If you prefer to load U-Boot into RAM and execute it directly over USB without using an SD card, you can use the sunxi-fel utility:
sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin
This method is useful for testing or when bypassing the SD card for some reason.
Enter these commands in the U-Boot console:
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait
setenv bootcmd "mmc rescan; fatload mmc 0:1 0x46000000 Image; fatload mmc 0:1 0x49000000 sun50i-h616-orangepi-zero2.dtb; booti 0x46000000 - 0x49000000"
Use a boot.scr file for automatic booting.
For LPDDR4 version:
make orangepi_zero3_defconfig
For DDR3 versions, modify the config:
BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h616-orangepi-zero2.dts"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero2"
Download sources with make source, then build.