U-Boot2017.01的启动过程比较复杂,本文分为6部分讲述,笔者将主要过程和函数调用关系整理成一个文档方便查看,文档链接为
U-Boot2017.01启动过程分析pdf
U-Boot2017.01源码分析及启动命令解析
启动过程6部分内容如下
01-U-Boot2017.01 启动过程概述
02-U-Boot2017.01 SPL阶段分析
03-U-Boot2017.01 U-Boot阶段分析
04-U-Boot2017.01 加载内核过程
05-U-Boot2017.01 bootz加载过程
06-U-Boot2017.01 读取uEnv.txt过程
1 平台及版本信息
本次uboot启动流程分析使用的开发板是TI官方的AM335x系列的板子,具体信息如下:
类型 | Value |
---|---|
SDK | ti-am335x-evm-04.00.00.04 |
u-boot版本 | 2017.01 |
工具链 | arm-linux-gnueabihf-gcc |
工具链版本 | gcc version 6.2.1 20161016 |
CPU | ARM Cortex-A8 |
指令集 | armv7 |
2 启动过程概述
早起版本的uboot没有spl阶段,对于AM3355x板子来讲,其片上RAM只有128Kb,不足以放下一整个uboot,因此将启动过程分为SPL和uboot两个阶段,spl阶段主要是初始化了SDRAM,为uboot阶段做准备。