Este es el primer eslabon, un gestor de arranque que pueda instalarse en los primeros sectores de la tarjeta SD o la memoria NAND y sea capaz de cargar al kernel linux-sunxi.
Como el espacio a usar es muy chiquito y por defecto no trae soporte nand, hay que compilar dos versiones diferentes a la oficial.
Usar el branch viejo del 2012, el ultimo no compila para la configuracion de cubieboard.
TODO: Investigar un poco mas que esta pasando.
git clone -b old/sunxi-current https://github.com/linux-sunxi/u-boot-sunxi.git U-BOOT
Cloning into 'U-BOOT'...
/*
- La version actualizada no compila para cubie.
git clone https://github.com/linux-sunxi/u-boot-sunxi.git
*/
/# cd U-BOOT
/U-BOOT# make cubieboard_config
Configuring for Cubieboard - Board: sun4i, Options: CUBIEBOARD,SPL,SUNXI_EMAC,STATUSLED=244
/U-BOOT# make CROSS_COMPILE=arm-linux-gnueabihf-
Archivos a usar
/U-BOOT# ls spl/sunxi-spl.bin
spl/sunxi-spl.bin
/U-BOOT# ls u-boot.
u-boot.bin
Estas son las variables que se le pasa al u-boot para bootear desde la SD.
/U-BOOT# vi boot.cmd
setenv bootargs console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=1280x720p60:EDID root=/dev/mmcblk0p1 rootwait panic=10
ext2load mmc 0 0x43000000 boot/script.bin
ext2load mmc 0 0x48000000 boot/uImage
bootm 0x48000000
Hay que procesarlas en un archivo que entienda el gestor.
-C none -> Sin compresion
-A arm -> Arquitectura ARM
-T script -> Tipo de imagen.
/U-BOOT# mkimage -C none -A arm -T script -d boot.cmd boot.scr
Image Name:
Created: Fri Aug 30 04:15:14 2013
Image Type: ARM Linux Script (uncompressed)
Data Size: 241 Bytes = 0.24 kB = 0.00 MB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 233 Bytes = 0.23 kB = 0.00 MB
El arranque desde la nand es un poco mas complejo, al margen del gestor, hace falta un archivo binario y cerrado, que funciona como una especie de gancho previo al gestor. Ademas, la memoria tiene que estar particionada con la herramienta sunxi y con un sector de arranque maestro valido.
Este tema queda pendiente de desarrollo al momento de escribir.
/# git clone -b lichee-dev git://github.com/linux-sunxi/u-boot-sunxi.git U-BOOT_NAND
cd U-BOOT_NAND
U-BOOT_NAND# vi include/configs/sun4i.h
U-BOOT_NAND# make sun4i CROSS_COMPILE=arm-linux-gnueabihf-