Alientek I.MX6UL Linux-第九章 I.MX6U的启动方式

启动方式选择

  BOOT模式有两种
  1.改写eFUSE(熔丝);
  2. 修改相应的GPIO高低电平。
  第一种修改eFUSE的方式只能修改一次,后面就不能再修改了,所以作为学习与调试我们不能使用。第二种是修改GPIO对应的高低电平来选择启动方式,所有的开发板都使用这种方式。

BOTE_MODE[1:0] BOOT类型
00 从FUSE启动
01 串行下载
10 内部BOOT模式
11 保留

  开发板只用到第二和第三种BOOT方式。

串行下载

  串行下载是指可以通过USB或UART将代码下载到外置存储设备中,所以我们可以使用OTG1这个USB口向开发板的存储设备下载代码。使用时需要用到NXP提供的一个软件,一般用来最终量产的时候烧写到外置存储设备中。

内部BOOT模式

  在此模式下,芯片会执行内部boot ROM代码,这段boot ROM代码会进行硬件初始化,然后从boot设备(存储代码的设备如SD/EMMC/NAND)将代码拷贝至指定的RAM,一般是DDR。

BOOT ROM初始化内容

BOOT 启动设备

Alientek I.MX6UL Linux-第九章 I.MX6U的启动方式_第1张图片

BOOT_CFG引脚含义

Alientek I.MX6UL Linux-第九章 I.MX6U的启动方式_第2张图片

BOOT选择拨码开关

除了BOOT_MODE1和BOOT_MODE0必须引出来,LCD_DATA3LCDDATA7、LCD_DTAT11这六个IO也被引出来,可以通过拨码开关进行设置,其中LCD_DTAT11是BOOT_CFG2[3],LCD_DAT3LCD_DATA7就是BOOT_CFG[3]~BOOT_CFG1[7],这六个IO配置如下:

BOOT_CFG引脚[1:0] 对应LCD引脚 含义
BOOT_CFG2[3] LCD_DATA11 LCD_DATA11|为0时从SDHC上的SD/EMMC启动,为1时从SDHC2上的SD/EMMC启动
BOOT_CFG1[3] LCD_DATA3 当从SD/EMMC启动的时候设置启动速度,当从NAND启动的话设置NAND数量
BOOT_CFG1[4] LCD_DATA4 BOOT_CFG1[7:4]
0000 NOR/OneNAND(EIM)启动。
0001 QSPI 启动。
0011 SPI启动。
010x SD/eSD/SDXC启动。
011x MMC/eMMC启动。
1xxx NAND Flash启动。
BOOT_CFG1[5] LCD_DATA5
BOOT_CFG1[6] LCD_DATA6
BOOT_CFG1[7] LCD_DATA7

镜像烧写

  I.MX6U最终可烧写文件组成如下:
  1.Image vector table 简称 IVT,IVT里面包含了一系列的地址信息,这些地址信息在 ROM中按照固定的地址存放着。
  2.Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。
  3.Device configuration data,简称 DCD,设备配置信息,重点是 DDR3的初始化配置。
  4.用户代码可执行文件,比如 led.bin。

你可能感兴趣的:(Alientek I.MX6UL Linux-第九章 I.MX6U的启动方式)