Linux学习笔记15-IMX启动方式

一、硬件启动方式选择  

      6ULL是怎么支持从多种外置flash 启动程序的。参考手册chapter 8 :system boot (系统启动)

        1、启动方式选择        

 常用的是01和10。BOOT_MODEO和BOOT_MODE1,这两个是两个来控制的。选择从USB启动还是内部BOOT启动。如果要烧写系统到开发板中可以选择从USB 下载,下载到SD卡,EMMCNADN等外置存储中。烧写完成设置从内部 BOOT 启动,然后从相应的外置存储中启动。

       可 通过拨动拨码开关来选择不同的启动方式。LED灯实验,是从SD卡读取 bin 文件并启动,说明6UL 支持从SD 卡启动。6ULL 支持多种启动方式。

IMX6ULL_ALPHA核心板原理图

拨码开关原理图:IMX6ULL_ALPHA_V(底板原理图)

2、启动设备选择

        参考手册8.5Boot devices (internal boot)

        前提是,你设置 MODE1和 MODE0是从内部 BOOT 启动的,也就是 MODE1=1,MODE0=0

只有设置了内部启动才需要选择启动设备。

        支持NOR flash,oneNAND、NAND Flash、QSPIflash、SD/EMMC、EEPROM。我们最常用的就是NAND、SD、EMMC 甚至QSPI Flash。
 

        如何选择启动设备,通过BOOT_CFG来选择,有BOOT_CFG1、2、4,每个8位。BOOT_CFG是由LCD_DATA0-23来设置的。在ALPHA开发板上,大部分默认都47K下拉电阻接地。BOOT_CFG4的8根线全部接地,BOOT_CFG2全部接地,除了BOOT_CFG2[3],此位用来选择SD卡启动接口。BOOT_CFG1[0]、[1]、[2]都是固定的,[3]、[4]、[5]、[6]、[7]是可以设置的。

        正点原子开发板BOOT 电路设置。核心板 LCD_DATA0-23 基本47K下拉。·

核心板原理图:

二、启动头文件

         在LED裸机实验中,我们需要再生产的.bin文件前面添加一个头文件,否则直接将.bin文件烧录到SD卡里面是无法启动的。当选择BOOT_MODE0和BOOT_MODE1的时候,我们选择从内部BOOT ROM启动的时候(内部BOOT模式)。当我们设置 BOOT 模式为“内部 BOOT 模式”以后,I.MX6U 内部的 boot ROM 代码就会执行,这个 bootROM 代码都会做什么处理呢?首先肯定是初始化时钟。

       1、 Boot Rom做的事情:        

        这个ARM PLL是供6ULL A7内核的。所以要设置的时钟为396MHZ,使能 MMU 和 Cache,使能 L1cache L2 cache MMU,目的就是为了加速启动。

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

2、 IVT和Boot Data数据

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

        

3、 DCD数据

        复位默认的数据都不是我们想要的所以我们要配置,典型的就是DDR。.bin头部里面包含初始化DDR

其他数据:检查数据命令、NOP 命令、解锁命令。这些其实也都属于 DCD。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值