U-Boot/Legacy U-Boot

Initially developed by Tom Cubie and now developed and maintained by Henrik Nordström the u-boot support comes in two branches, one with NAND and android stuff(boot.img, fastboot) support and another with MMC-only ( aka SD ) support, which is more the traditional linux style.

For details see the linux-sunxi u-boot wiki.

Compilation
First of all you need a suitable toolchain installed and added to your PATH. Then proceed as follows.

git clone https://github.com/linux-sunxi/u-boot-sunxi.git git checkout sunxi-current
 * Clone sunxi-current branch of u-boot git repository:

make cubieboard_config make CROSS_COMPILE=arm-linux-gnueabihf-
 * Go to the project directory and execute the build commands. Replace the board name in the first command with the one you are working with. Cubieboard is used in this example.

After finishing you'll find compiled files required for booting at spl/u-boot-spl.bin and u-boot.bin.

u-boot nand enviroment
Example u-boot enviroment from a stock android u-boot enviroment partition bootdelay=0 bootcmd=run setargs boot_normal console=ttyS0,115200 nand_root=/dev/nandc mmc_root=/dev/mmcblk0p4 init=/initloglevel=8 setargs=setenv bootargs console=${console} root=${nand_root} init=${init} loglevel=${loglevel} boot_normal=nand read 40007800 boot;boota 40007800 boot_recovery=nand read 40007800 recovery;boota 40007800 boot_fastboot=fastboot