当我们设置BOOT模式为内部BOOT模式后,I.MX6U内部的boot ROM就会执行,首先初始化时钟,设置内核时钟为396MHz。使能MMU和Cache,使能L1Cache和L2Cache MMU,目的就是为了加速启动。
从BOOT_CFG设置的外置存储中,读取image,然后做相应的处理。
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文件里面提取出来的。
Device configuration data ,DCD就是配置6ULL内部寄存器的。首先,将CCRG0-CCRG6全部写为0xffffffff,表示打开所有外设时钟,然后就是DDR初始化参数。设置DDR控制器,也就是初始化DDR。
检查数据命令,NOP命令,解锁命令。这些命令也都属于DCD。
总结:这一小节讲的是头部信息的分析,头部信息有哪些,我的理解就是头部数据一共占用了4KB,bin文件的偏移1K加上3K的TVI和boot data和DCD数据一共是4KB。