The Allwinner boot process

Most Allwinner systems use U-Boot as the boot program. This page documents that process.

U-Boot layout

Recent versions of U-Boot are split into a small first-stage loader called SPL and a main boot program. The following table shows SD Card layout expected by system ROM:

SD Card layout

start

size

usage

0

8KB

Partition table

8KB

32KB

Initial SPL loader

40KB

512KB

U-Boot

552KB

472KB

Reserved

1024KB

-

Free for partitions

U-boot ports

The main U-Boot program can be configured with many different options for loading a kernel from SD card, USB drives, SATA drives, or the network. When booting FreeBSD the usual process is to have U-Boot start loader.efi from the FAT partition in either EFI/boot/bootarm.efi or EFI/boot/bootaa64.efi depending on the architecture.

Some precompiled u-boot are available via ports and packages. For instance, you can simply enter pkg install u-boot-cubieboard, and all the files you will need to get U-Boot onto an SD card are installed for you in /usr/local/share/u-boot, including a README file that tells you how to install the file(s) onto the SD card.

The following U-Boot ports and packages are available for Allwinner systems:

Technical note: these are all slave ports of sysutils/u-boot-master with some predefined variables.

arm/Allwinner/booting (last edited 2020-11-22 17:57:28 by EmmanuelVadot)