嵌入式Linux学习记录之IMX6ull启动

闲来记录一下自学正点原子的linux阿尔法板的过程,主要是一些学习过程中的简化笔记。

BOOT_MODE0和BOOT_MODE1,由两个IO控制,选择USB启动还是内部BOOT启动,
USB启动:烧写系统到外置存储中
BOOT启动:烧写完成从内部BOOT启动,再从相应的外置存储中启动。

选择启动设备      参考手册的第8章
MODE1=1,MODE0=0
NOR flash ,NAND Flash , SD/EMMC, QSPI flash(最省成本)
通过BOOT_CFG1,2,4,每个8位
BOOT_CFG是由LCD_DATA0~23来设置的,开发板上默认47K接地。
BOOT_CFG4的8个线全部接地。
BOOT_CFG2全部接地,除了BOOT_CFG2[3],此为用来选择SD卡启动接口。
BOOT_CFG1 .0,1,2都是定死的3,4,5,6,7是可以设置的。

启动头文件:
1、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即0xc00 
    bin起始地址8780 0000
    IVT大小为32B/4=8条

3、DCD数据
    Device Configuration data  DCD数据就是配置6ULL内部寄存器的
    CCRG0~CCGR6全部写为0XFFFFFFFF, 表示打开所有外设时钟。


版权声明:本文为weixin_44313363原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。