[Arm-netbook] u-boot for A10

Tom Cubie tangliang at allwinnertech.com
Mon Dec 26 04:02:44 GMT 2011


On 12/26/2011 11:01 AM, Bari Ari wrote:
> On 12/25/2011 08:13 PM, Tom Cubie wrote:
>> i have pushed a new branch 'lichee-dev' to the tree. Currently
>> lichee-dev support sun4i and sun5i, it breaks all other machines in
>> the branch :( because we used a private nand lib which support many
>> types of nand flash. The same nand lib used in the allwinner linux
>> kernel, to be compatible with the current system(packaging, flashing
>> image etc...), we keep it. I think in the future we will need to write
>> the mtd nand driver and change the nand to mtd.
>>
>> To build u-boot for A10, run 'make sun4i CROSS_COMPILE=
>> arm-linux-gnueabi-' in the u-boot directory.
>>
>> http://git.rhombus-tech.net/?p=u-boot.git;a=shortlog;h=refs/heads/lichee-dev
>>
> Are there instructions for flashing u-boot somewhere? I know we don't
> have hardware yet but does the A10 have options for where the init and
> bootloader are stored or expected to be after reset via pin-straps or is
> it hardwired?
>
> The flashrom folks might be interested in supporting this as well since
> this project should be very popular soon.
>
> -Bari
>
> _______________________________________________
> arm-netbook mailing list arm-netbook at lists.phcomp.co.uk
> http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook
> Send large attachments to arm-netbook at files.phcomp.co.uk
>

The problem is here. The A10 is a very 'closed chip'. There is a brom in 
the chip, which can not be modified. This brom will load program from 
external storage(nand, mmc), which we call boot0 in allwinner. Brom will 
check the header of boot0, and get hardware information from boot0. The 
hardware information is in a config file called sys_config.fex. A pc 
tools will read the config file, and write the hardware information to 
the head of boot0. After boot0 is booted up, it will continue to load 
another loader boot1, boot1 init all other hardware and provides 
hardware abstracts and services. According to the boot OS, boot1 loads 
an arm elf program, boot.axf. For booting linux, boot.axf loads the 
u-boot and jumps to the u-boot. Then u-boot will take over.

So, the whole boot process is:

brom -> boot0 -> boot1 -> boot.axf -> u-boot -> kernel



More information about the arm-netbook mailing list