我们知道,在u-boot中可以使用bootm这个命令来引导uclinux内核,那么其具体的过程是怎样的呢
1bootm的命令参数通过helpbootm命令可以知道bootm所带的参数,以下内容来自于u-boot/common/cmd-bootm
c:U_BOOT_CMD(bootm,CFG_MAXARGS,1,do_bootm,"bootm-bootapplicationimagefrommemory\n","[addr[arg
]]\n-bootapplicationimagestoredinmemory\n""\tpassingarguments'arg
';whenbootingaLinuxkernel,\n""\t'arg'canbetheaddressofaninitrdimage\n");从这里可以知道,bootm后面可以带两个参数,一个是内核所在的地址,这个地址就是通过tftp或者loadx指令下载内核时的存放地址,另一个可以指明initrd所处的位置
2do_bootm在u-boot检测到bootm命令后,它将调用do_bootm这个函数进行内核引导:intdo_bootm(cmd_tbl_t*cmdtp,intflag,intargc,char*argv[]){ulongiflag;ulongaddr;ulongdata,len,checksum;ulong*len_ptr;uintunc_len=CFG_BOOTM_LEN;inti,verify;char*name,*s;int(*appl)(int,char*[]);image_header_t*hdr=&header;/*1、提取命令行中的地址参数
*/s=getenv("verify");verify=(s&&(*s=='n