Posted on 2008-04-02 10:06
vsolo 阅读(3089)
评论(0) 编辑 收藏 引用 所属分类:
MISC
事实上,如果CONFIG_BOOTCOMMAND在配置文件./include/configs/.h中没有给bootcmd赋值,那么U-boot就不知道kernel的入口地址,U-boot启动后将会等待命令。
具体实现过程:
Uboot:Start.s -> start_armboot ()<./lib_arm/board.c> -> main_loop ()<./common/main.c>
main_loop()会调用abortboot (bootdelay)判断在delay time内有没有键按下,并给出prompt“Hit any key to stop autoboot”,若没有键按下则run_command (s, 0)(s为默认的bootcmd)。这里默认的bootcmd需要根据内核的位置设置,若bootcmd未赋值,Uboot就会一直等待。
若此时内核已在RAM中,bootm <add>就可以启动内核了;若内核从(nor)Flash启动,则首先要将内核从Flash中拷贝到RAM:setenv bootcmd cp.b <source add in Flash> <target add in RAM> <count>\;bootm <target add>;当然也可以设置从其它(如tftp)启动·····