Boot.axf

= General =

boot.axf is the final allwinner bootloader. It can either load a u-boot image, or a stripped linux kernel directly, called bImage by the build scripts. Manually building is possible using arm-linux-gnueabi-objcopy -R .note.gnu.build-id -S -O binary vmlinux output/bImage for example.

= Boot partition structure = The default structure of the boot-partition, which boot.axf uses to load various data from. An example layout can be found on github.

= Configuration =

The booting configuration is defined by the ini-file linux/linux.ini: [segment] img_name = c:\linux\bImage img_size = 0x2000000 img_base = 0x40008000

[segment] img_name = c:\linux\params img_size = 0x100 img_base = 0x40000100

[script_info] script_base = 0x43000000 script_size = 0x10000

[logo_info] logo_name = c:\linux\android.bmp logo_address = 0x48000000 logo_show = 1 Note: yes, they actually use DOS paths and partition names, and most likely internally translate those.

boot.axf can also "chainload" u-boot, replacing the bImage portion by: [segment] img_name = c:\linux\u-boot.bin img_size = 0x80000 img_base = 0x4a000000 This is what is done on ICS firmwares on tablets, where what is booted is an Android boot.img by u-boot.

= Source code =

There is a source tree for building boot.axf available at this repository. Use at your own risk, as it's very obscure and not well known.