第699行,调用函数 boot_selected_os 启动 Linux 内核,此函数第 4 个参数为 Linux 系统镜像头,第 5 个参数就是 Linux 系统启动函数 do_bootm_linux。boot_selected_os 函数定义在文件common/bootm_os.c如下: 最终调用 boot_selected_os->boot_fn(即do_bootm_linux)->boot_jump_linux来启动 Linux 内核: boo...
Bootm命令用来从memory启动内核,bootm命令的执行流程如下图所示。 在串口终端输入bootm命令后,执行do_bootm函数来完成相应的功能。Do_bootm函数首先调用bootm_start函数。(如果不输入,应该也有。) Bootm_start函数的主要作用是获取内核映像文件的相关信息,并保存到全局变量images中,image是struct bootm_headers结构类型,...
(2)do_bootm函数执行到after_header_check:就对头信息校验完毕。 (3)后面一句switch (os),case有很多种选项,说明uboot不单单只能启动linux内核的镜像,也能启动其他内核。我们使用的是linux内核,所以后面会执行do_bootm_linux这个函数。 (4)do_bootm_linux函数 if(p_w_picpaths->legacy_hdr_valid){ep=p_w_...
接下来的很大一部分就是对uImage镜像进行校验,并将头信息写入到全局变量image中。 (2)do_bootm函数执行到after_header_check:就对头信息校验完毕。 (3)后面一句switch (os),case有很多种选项,说明uboot不单单只能启动linux内核的镜像,也能启动其他内核。我们使用的是linux内核,所以后面会执行do_bootm_linux这个函数。
1、摘要 (1)、启动4步骤第一步:将内核搬移到DDR中第二步:校验内核格式、CRC等第三步:准备传参第四步:跳转执行内核(2)、涉及到的主要函数是:do_bootm和do_bootm_linux(3)、uboot能启动的内核格式:zImage uImage fdt方式(设备树)(4)、跳转与函数指
在do_bootm 中就是通过 ih_os 判断镜像的类型,然后使用相应的方法启动内核 这里的镜像是 Linux 镜像,所以使用的是 do_bootm_linux, do_bootm_linux 的参数大部分是通过 do_bootm 传递的 启动的参数 bootm 30008000,告诉 uboot 去 30008000 这个地址去找镜像文件 内核启动 镜像的程序入口叫做 entrypoint ,在 do...
do_bootm_linux函数位于uboot/lib_arm/bootm.c中,函数的主要功能是获取环境变量中的内核传递参数,获取当前uboot启动kernel的images变量中的kernel入口地址,获取uboot中的机器码,准备向kernel传递的参数,最后跳转到kernel执行,uboot执行完毕。uboot在执行完成前打印了”Starting kernel ...”信息。如果uboot实际启动kern...
1.用户通过命令行界面输入`bootm <地址>`命令。 2. U-Boot的命令处理器接收到指令后,调用`do_bootm()`函数开始执行加载操作。 3. `do_bootm()`函数首先验证并解析指定地址处的二进制格式头部信息(例如对于flattened device tree blob和Linux kernel image)。 4.然后按照标准协议加载内核映像到内存,并将其重定...
LINUX; //表示使用的是linux ret = do_bootm_states(cmd, flag, argc,argv, #ifdef CONFIG_SYSBOOT_RAMDISK_HIGH BOOTM_STATE_RAMDISK | #endif BOOTM_STATE_OS_PREP BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO, &images, 1); return ret; } 第7行,设置并找到linux镜像的...
传参在do_bootm_linux函数中。 1.tag方式传参 struct tag,tag是一个数据结构,在uboot和linux kernel中都有定义tag数据结构,而且定义一致。 struct tag定义在include/asm-arm/setup.h中 里面有两个参数。一个是tag_header结构体(include/asm-arm/setup.h中),一个是tag多种类型属性的联合体。