本文主要是介绍bootz启动 Linux内核过程中涉及的 do_bootz 函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一. bootz启动Linux
uboot 启动Linux内核使用bootz命令。当然还有其它的启动命令,例如,bootm命令等等。
本文只分析 bootz命令启动 Linux内核的过程,具体分析 bootz启动 Linux内核过程涉及的 do_bootz 函数。
本文继上一篇文章,地址如下:
bootz启动 Linux内核过程中涉及的全局变量images_凌肖战的博客-CSDN博客
二. bootz 启动 Linux 内核过程
1. do_bootz 函数
bootz 命令的执行函数为 do_bootz函数,在文件 cmd/bootm.c 中有如下定义:
int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{int ret;/* Consume 'bootz' */argc--; argv++;if (bootz_start(cmdtp, flag, argc, argv, &images))return 1;/** We are doing the BOOTM_STATE_LOADOS state ourselves, so must* disable interrupts ourselves*/bootm_disable_interrupts();images.os.os = IH_OS_LINUX;ret = do_bootm_states(cmdtp, flag, argc, argv,BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO |BOOTM_STATE_OS_GO,&images, 1);return ret;
}
三. 函数调用关系
do_bootz 函数的调用关系如下:
后面的几篇文章,简单分析一下关键booz启动内核时涉及的几个关键函数。
这篇关于bootz启动 Linux内核过程中涉及的 do_bootz 函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!