I.MX6U 启动方式浅析

引入:前段时间浅析了一些I.MX6U的寄存器,那么接下来肯定是下载实验,但是下载前首先要知道I.MX6U是如何启动的。

问题一:I.MX6U  有哪几种启动方式?

引导ROM支持以下引导设备:
•NOR闪存
•NAND闪存
•OneNAND闪存
•SD / MMC
•串行(SPI)NOR闪存和EEPROM
•QuadSPI(QSPI)闪存

问题二:如何选择启动方式?

BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式

BOOT_MODE[1:0]可以通过修改相应的GPIO电平来控制。

I.MX6U 有一个 BOOT_MODE1 引脚和BOOT_MODE0 引脚,这两个引脚对应这 BOOT_MODE[1:0]。

 

 

 

由上面三幅图可知

BOOT_MODE1连接拨码开关的第一位

BOOT_MODE0连接拨码开关的第二位

00  从 FUSE 启动
01  串行下载
10  内部 BOOT 模式
11  保留

一般情况下只会用到串行下载和内部BOOT模式

问题三:串行方式和内部BOOT方式有何区别?

串行模式:BOOT_MODE1 为 0,BOOT_MODE0 为 1

串行下载的意思就是可以通过 USB 或者UART 将代码下载到板子上的外置存储设备中,我们可以使用 OTG1这个USB
口向开发板上的 SD/EMMC、NAND 等存储设备下载代码。

需要用到 NXP 提供的一个软件。

内部 BOOT  模式:BOOT_MODE 为 1,BOOT_MODE0 为 0

在此模式下,芯片会执行内部的 boot ROM 代码,这段 boot ROM 代码会进行硬件初始化(一部分外设),然后从 boot 设
备(就是存放代码的设备、比如 SD/EMMC、NAND)中将代码拷贝出来复制到指定的 RAM 中,一般是 DDR。

问题四:BOOT ROM 初始化了什么?

1.时钟初始化:

在图 9.2.1 中 BT_FREQ 模式为 0,可以看到,boot ROM 会将 I.MX6U 的内核时钟设置为396MHz,也就是主频为 396Mhz。System PLL=528Mhz,USB PLL=480MHz,AHB=132MHz,IPG=66MHz。

2.使能mmu和cache

内部 boot ROM 为了加快执行速度会打开 MMU 和 Cache,下载镜像的时候 L1 ICache 会打开,验证镜像的时候 L1 DCache、L2 Cache 和 MMU 都会打开。一旦镜像验证完成,boot ROM就会关闭 L1 DCache、L2 Cache 和 MMU。

3.重置中断向量表

中断向量偏移会被设置到 boot ROM 的起始位置,当 boot ROM 启动了用户代码以后就可以重新设置中断向量偏移了。一般是重新设置到我们用户代码的开始地方,关于中断的内容后面会详细讲解

问题五:如何选择boot设备?

当 BOOT_MODE 设置为内部 BOOT 模式以后,可以从一下设备中启动:

1.接到 EIM 接口的 CS0 上的 16 位 NOR Flash。
2.接到 EIM 接口的 CS0 上的 OneNAND Flash。
3.接到 GPMI 接口上的 MLC/SLC NAND Flash,NAND Flash 页大小支持 2KByte、4KByte
和 8KByte,8 位宽。
4.Quad SPI Flash。
5.接到 USDHC 接口上的 SD/MMC/eSD/SDXC/eMMC 等设备。
6.SPI 接口的 EEPROM

这些设备通过BOOT_CFG1[7:0]、BOOT_CFG2[7:0]和 BOOT_CFG4[7:0]这 24 个配置 IO,这 24 个配置 IO 刚好对应着 LCD 的 24 根数据线 LCD_DATA0~LCDDATA23,当启动完成以后这 24 个 IO 就可以作为 LCD 的数据线使用。这 24 根线和 BOOT_MODE1、BOOT_MODE0 共同组成了 I.MX6U的启动选择引脚

 

其中这24个引脚大部分直接接地主要的引脚为以下所示

BOOT_CFG2[3] 
为 0 时从 SDHC1 上的 SD/EMMC 启动,为 1 时从SDHC2 上的 SD/EMMC 启动。

BOOT_CFG1[3]  LCD_DATA3
当从 SD/EMMC 启动的时候设置启动速度,当从NAND 启动的话设置 NAND 数量。

总结:

启动方式的主要控制引脚只有8个

BOOT_MODE[1:0]

BOOT_CFG1[7:4]

BOOT_CFG1[3]

BOOT_CFG2[3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值