Skip to content

YuzukiHD/SyterKit

Repository files navigation

SyterKit

SyterKit LOGO_Thin

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

Support list

Board Platform Spec Config
Yuzukilizard V851s Cortex A7 yuzukilizard.cmake
TinyVision V851se Cortex A7 tinyvision.cmake
100ask-t113s3 T113-S3 Dual-Core Cortex A7 100ask-t113s3.cmake
100ask-t113i T113-I Dual-Core Cortex A7 + C906 RISC-V 100ask-t113i.cmake
100ask-d1-h D1-H C906 RISC-V 100ask-d1-h.cmake
dongshanpi-aict V853 Cortex A7 dongshanpi-aict.cmake
project-yosemite V853 Cortex A7 project-yosemite.cmake
100ask ROS R818 Quad-Core Cortex A53 100ask-ros.cmake
longanpi-3h H618 Quad-Core Cortex A53 longanpi-3h.cmake
longanpi-4b T527 Octa-Core Cortex A55 longanpi-4b.cmake
LT527X T527 Octa-Core Cortex A55 lt527x.cmake
Avaota A1 T527/A527 Octa-Core Cortex A55 avaota-a1.cmake
Avaota NAS (Canceled) A733 Dual-Core Cortex A76 + Hexa-Core Cortex A55 avaota-nas.cmake
Avaota F1 V821 RISC-V RV32 CPU + RISC-V RV32 MCU avaota-f1.cmake
TLT536-EVM T536 Quad-Core Cortex A55 tlt536-evm.cmake
Yuzukihomekit T113-M4020DC0 Dual-Core Cortex A7 + C906 RISC-V + HIFI4 DSP yuzukihomekit.cmake

Getting Started

SyterKit Architecture

SyterKit_Arch

Building SyterKit From Scratch

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

Creating TF Card Boot Firmware

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

Creating the Firmware for SPI NAND

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

Creating the Firmware for SPI NOR

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

License

FOSSA Status

About

SyterKit is a baremetal framework, As bootloader, MPU framework, Running on SRAM

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 13