boot header
1 page
kernel
n pages
ramdisk
m pages
second stage
o pages
entity_size的计算方式如下:
n = (kernel_size + page_size - 1) / page_size
m = (ramdisk_size + page_size - 1) / page_size
o = (second_size + page_size - 1) / page_size
注:
1. all entities are page_size aligned in flash
2 kernel and ramdisk are required (size != 0)
3. second is optional (second_size == 0 -> no second)
4. load each element (kernel, ramdisk, second) at
the specified physical address (kernel_addr, etc)
5. prepare tags at tag_addr. kernel_args[] is
appended to the kernel commandline in the tags.
6. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr
7. if second_size != 0: jump to second_addr
else: jump to kernel_addr