嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)

一,启动头文件

1.Boot Rom做的事情。

当我们设置BOOT模式为内部BOOT模式后,I.MX6U内部的boot ROM就会执行,首先初始化时钟,设置内核时钟为396MHz。使能MMU和Cache,使能L1Cache和L2Cache MMU,目的就是为了加速启动。

从BOOT_CFG设置的外置存储中,读取image,然后做相应的处理。

2.IVT和Boot Data数据

bin文件前面要添加头部。可以得到,我们烧写到SD卡中的load.imx文件在SD卡中的起始地址是0x400,也就是1024。

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第1张图片

头部大小为3KB加上偏移的1KB,一共为4KB,因此在SD卡中Bin文件起始地址为4096。

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第2张图片

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第3张图片

IVT大小为32B/4=8条。

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第4张图片

就是以下8条:

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第5张图片

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)_第6张图片

IVT+Boot Data的数据,很多都是左神从NXP官方u-boot.imx文件里面提取出来的。

3.DCD数据

Device configuration data ,DCD就是配置6ULL内部寄存器的。首先,将CCRG0-CCRG6全部写为0xffffffff,表示打开所有外设时钟,然后就是DDR初始化参数。设置DDR控制器,也就是初始化DDR。

4.其他的数据

检查数据命令,NOP命令,解锁命令。这些命令也都属于DCD。

总结:这一小节讲的是头部信息的分析,头部信息有哪些,我的理解就是头部数据一共占用了4KB,bin文件的偏移1K加上3K的TVI和boot data和DCD数据一共是4KB。

你可能感兴趣的:(linux,学习,笔记)