SyterKit is a bare-metal framework designed for Allwinner platform. SyterKit utilizes CMake as its build system and supports various applications and peripheral drivers. Additionally, SyterKit also has bootloader functionality, which enables it to replace U-Boot for fast booting (standard Linux 6.7 mainline boot time of 1.02s, significantly faster than traditional U-Boot's 3s boot time).
Board | Manufacturer | Platform | Spec | Details | Config |
---|---|---|---|---|---|
Yuzukilizard | YuzukiHD | V851s | Cortex A7 | board/yuzukilizard | yuzukilizard.cmake |
TinyVision | YuzukiHD | V851se | Cortex A7 | board/tinyvision | tinyvision.cmake |
100ask-t113s3 | 100ask | T113-S3 | Dual-Core Cortex A7 | board/100ask-t113s3 | 100ask-t113s3.cmake |
100ask-t113i | 100ask | T113-I | Dual-Core Cortex A7 + C906 RISC-V | board/100ask-t113i | 100ask-t113i.cmake |
dongshanpi-aict | 100ask | V853 | Cortex A7 | board/dongshanpi-aict | dongshanpi-aict.cmake |
100ask ROS | 100ask | R818 | Quad-Core Cortex A53 | board/100ask-ros | 100ask-ros.cmake |
longanpi-3h | sipeed | H618 | Quad-Core Cortex A53 | board/longanpi-3h | longanpi-3h.cmake |
longanpi-4b | sipeed | T527 | Octa-Core Cortex A55 | board/longanpi-4b | longanpi-4b.cmake |
BingPi-M1 | BingPi | V3s | Cortex A7 | board/bingpi-m1 | bingpi-m1.cmake |
Building SyterKit is a straightforward process that only requires setting up the environment for compilation on a Linux operating system. The software packages required by SyterKit include:
gcc-arm-none-eabi
CMake
For commonly used Ubuntu systems, they can be installed using the following command:
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake build-essential -y
Then create a folder to store the compiled output files and navigate to it:
mkdir build
cd build
Finally, run the following commands to compile SyterKit:
cmake -DCMAKE_BOARD_FILE={Board_config_file.cmake} ..
make
For example, if you want to compile SyterKit for the TinyVision platform, you need the following command:
cmake -DCMAKE_BOARD_FILE=tinyvision.cmake ..
make
The compiled executable files will be located in build/board/{board_name}/{app_name}
.
The SyterKit project will compile two versions: firmware ending with .elf
is for USB booting and requires bootloading by PC-side software, while firmware ending with .bin
is for flashing and can be written into storage devices such as TF cards and SPI NAND.
- For SD Card, You need to flash the
xxx_card.bin
- For SPI NAND/SPI NOR, You need to flash the
xxx_spi.bin
After build the firmware, you can flash it into the TF card. For the V851s platform, you can write it to either an 8K offset or a 128K offset. Generally, if the TF card uses MBR format, write it with an 8K offset. If it uses GPT format, write it with a 128K offset. Assuming /dev/sdb
is the target TF card, you can use the following command to write it with an 8K offset:
sudo dd if=syter_boot_bin_card.bin of=/dev/sdb bs=1024 seek=8
If it is a GPT partition table, you need to write it with a 128K offset:
sudo dd if=syter_boot_bin_card.bin of=/dev/sdb bs=1024 seek=128
For SPI NAND, we need to create the firmware for SPI NAND by writing SyterKit to the corresponding positions:
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k seek=32
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k seek=64
You can also include the Linux kernel and device tree in the firmware:
dd if=sunxi.dtb of=spi.img bs=2k seek=128 # DTB on page 128
dd if=zImage of=spi.img bs=2k seek=256 # Kernel on page 256
Use the xfel tool to flash the created firmware into SPI NAND:
xfel spinand write 0x0 spi.img
For SPI NOR, we need to create the firmware for SPI NOR by writing SyterKit to the corresponding positions:
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k seek=32
dd if=syter_boot_bin_spi.bin of=spi.img bs=2k seek=64
You can also include the Linux kernel and device tree in the firmware:
dd if=sunxi.dtb of=spi.img bs=2k seek=128 # DTB on page 128
dd if=zImage of=spi.img bs=2k seek=256 # Kernel on page 256
Use the xfel tool to flash the created firmware into SPI NOR:
xfel spinor write 0x0 spi.img