boot_linux_from_flash
//启动内核entry(0, machtype, tags);
//对应kernel/arch/arm/boot/compressed/head.S中的代码如下start: .type start,#function .rept 8 mov r0, r0 .endr
b 1f .word 0x016f2818 @ Magic numbers to help the loader .word start @ absolute load/run zImage address .word _edata @ zImage end address1: mov r7, r1 @ save architecture ID mov r8, r2 @ save atags pointer bootloader: 关于启动TAGS /* ATAG_MEM */ *ptr++ = 4; *ptr++ = 0x54410002; *ptr++ = SDRAM_SIZE; *ptr++ = SDRAM_ADDR; kernel:Setup.c (kernel/arch/arm/kernel) static int __init parse_tag_mem32(const struct tag *tag){ return arm_add_memory(tag->u.mem.start, tag->u.mem.size);}
__tagtable(ATAG_MEM, parse_tag_mem32);