LINUX-I.MX6U从零开始之1.2--I.MX6U的启动方式

目录

        • 一,启动方式选择
          • 1.1串行下载
          • 1.2 内部 BOOT 模式
        • 二,启动设备
        • 三,镜像烧写

一,启动方式选择

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

LINUX-I.MX6U从零开始之1.2--I.MX6U的启动方式_第1张图片

1.1串行下载

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

1.2 内部 BOOT 模式

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

二,启动设备

当 BOOT_MODE 设置为内部 BOOT 模式以后,可以从一下设备中启动:
、接到 EIM 接口的 CS0 上的 16 位 NOR Flash。
、接到 EIM 接口的 CS0 上的 OneNAND Flash。
、接到 GPMI 接口上的 MLC/SLC NAND Flash,NAND Flash 页大小支持 2KByte、4KByte和 8KByte,8 位宽。
、Quad SPI Flash。
、接到 USDHC 接口上的 SD/MMC/eSD/SDXC/eMMC 等设备。
、SPI 接口的 EEPROM。
这些启动设备如何选择呢?I.MX6U 同样提供了 eFUSE 和 GPIO 配置两种。
这里只讲GPIO配置。
启动设备是通过BOOT_CFG1[7:0]、BOOT_CFG2[7:0]和 BOOT_CFG4[7:0]这 24 个配置 IO。
LINUX-I.MX6U从零开始之1.2--I.MX6U的启动方式_第2张图片
BOOT_CFG4[7:0]这 8 个 IO 都 10K 电阻下拉接地。
BOOT_CFG1[7:0]和 BOOT_CFG2[7:0]这 16 个 IO,呵,看原子手册吧,有板子原理图。

三,镜像烧写

.bin 文件前面添加一些头信息构成满足 I.MX6U 需求的最终可烧写文件。
烧写文件组成:IVT+Boot data+DCD+.bin
、Image vector table,简称 IVT,IVT 里面包含了一系列的地址信息,这些地址信息在 ROM中按照固定的地址存放着。
、Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。
、Device configuration data,简称 DCD,设备配置信息,重点是 DDR3 的初始化配置。
、用户代码可执行文件,比如 led.bin。
具体详见博客1.3烧录实现。

你可能感兴趣的:(linux)