目录
1. 流程图
2. u-boot.imx的构造
1. 流程图
正常情况下,一台IMX6设备的启动路径就是图中自上而下最左边那条路:
启动/复位后先检查CPU的ID(每颗芯片独一无二)
------> 检查复位状态(有没有按下复位键)
------> 检查boot模式(mmc? USB? SPI?...)
------> 一般是内部启动(mmc设备),则把uboot镜像下载到DDR内存
------> 校验uboot镜像
------> 如果通过校验的话,执行uboot镜像!
2. u-boot.imx的构造
NXP会在 u-boot.bin (以及所有其他 MyApp.bin) 前面加上一些头信息,组成u-boot.imx。只有.imx文件才能让IMX6芯片在裸机状态下识别和加载。
.imx文件的组成:
u-boot.imx
= IVT(Image vector table) + Boot data + DCD(Device configuration data) + uboot.bin
其中
IVT(Image vector table),里面包含了一系列的地址信息, 这些地址信息在ROM 中按照固定的地址存放着。
Boot data, 启动数据, 包含了镜像要拷贝到哪个地址, 拷贝的大小是多少等等。
DCD(Device configuration data),设备配置信息(批量设置寄存器值), 重点是 DDR3 和 时钟 的初始化配置。
uboot.bin,用户可执行代码。
上电后,IMX6会将整块的u-boot.imx镜像加载到 DDR上:
然后在DDR里,IMX6根据 IVT的号码本,依次访问 Boot data,DCD,bin文件等等。。