bootm调用流程

bootm调用流程

本文作为一个笔记,记录bootm启动的流程,参考版本:uboot 2021.01

在执行bootm之前,image已经从sd卡读到了内存中,这个要看uboot的参数,是从哪里读取读到哪里
下面的是qemu的下载命令:uboot的命令可以放在代码里面可以放在环境变量里面也可以放在文件里面,例如boot.scr。
fatload mmc 0 0xa1000000 uImage.lz4
fatload mmc 0 0xa8300000 uInitrd.lz4
fatload mmc 0 0xa8000000 kernel.dtb

bootm – 执行命令 : bootm 0xa1000000 0xa8300000 0xa8000000
do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) – cmd/bootm.c
A. argc–; argv++; //去掉了命令参数中的argv[0],也就是bootm

	B.	// 如果states包含BOOTM_STATE_OS_GO此函数最终就会boot an OS, 那么这个函数就不会返回了,除非出错了。
		// 这里传入的States是0x71f,所以会执行很多子函数
		do_bootm_states(cmdtp, flag, argc, argv, states, &images, 1) -- common/bootm.c
			1.1	if (states & BOOTM_STATE_START)
					ret = bootm_start(cmdtp, flag, argc, argv);     -- common/bootm.c
						memset 全局变量images,image状态设置为start
						
			2.1	if (!ret && (states & BOOTM_STATE_FINDOS))
					ret = bootm_find_os(cmdtp, fla
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值