[xboard]15 uboot加载内核启动分析
文章目录
-
-
- 1代码分析
-
- do_bootm代码框架
- do_bootm_states代码框架
- boot_selected_os和do_bootm_linux代码框架
- 2 打印定位
- 参考
-
- 主要源码
- board_preboot_os
-
1代码分析
do_bootm代码框架
bootm命令的使用,一般有如下几种
> bootm 0x100000 → 纯数字,执行正常启动流程
>bootm ramdisk → 包含字母,执行子命令流程
>bootm 30000000:kernel → 包含 ':',执行 FIT 启动流程
bootm命令的代码,位于cmd/bootm.c,大体流程如下所示,最后调用do_bootm_states
其states值含义如下所示
状态标志 | 说明 |
---|---|
BOOTM_STATE_START | 启动过程开始 |
BOOTM_STATE_FINDOS | 查找操作系统镜像 |
BOOTM_STATE_FINDOTHER | 查找其他组件(设备树、ramdisk等) |
BOOTM_STATE_LOADOS | 加载操作系统到内存 |
BOOTM_STATE_RAMDISK | 处理 RAM disk(条件编译) |