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

发布时间:2024年01月05日

一,启动头文件

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。

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

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

就是以下8条:

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。

文章来源:https://blog.csdn.net/m0_71548440/article/details/135403779
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。