[imx6ull]启动与头部信息详解

image.png

艾恩凝

2021/11/24

板子没到手,先熟悉芯片吧,上手轻车熟路,imx6ull启动方式有好多种,但正点原子主要就三种,外加一个下载,关于芯片启动方式在芯片手册第八章

那么先从板子上的拨码开关开始

imx6ull003.png

下图说明了使用什么模式要具体怎么拨,还有原理图上的引脚

imx6ull002.png

启动方式选择

imx6ull001.png

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

Serial Downloader

当 BOOT_MODE1 为 0, BOOT_MODE0 为 1 的时候此模式使能,串行下载的意思就是可以通过 USB 或者 UART 将代码下载到板子上的外置存储设备中,我们可以使用 OTG1 这个 USB口向开发板上的 SD/EMMC、NAND 等存储设备下载代码。我们需要将 BOOT_MODE1 拨到“OFF”,将 BOOT_MODE0 拨到“ON”。

Internal Boot

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

启动方式

主要是sd,emmc,nand,这三种,其他的就不多谈了。首先看下面的这张图,芯片手册第8.3.2,258页上的表格,这就是需要配置的寄存器,3组

imx6ull004.png

查看原理图

imx6ull005.png

正点原子出厂的板子,大多数引脚接地,我们主要关注下面几个引脚

imx6ull006.png

关于如何设置这三组寄存器,可以查看芯片手册第8.5小节,详细介绍了如何设置,同时也可以看下面这张图。简单清晰明了

imx6ull007.png

具体含义

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

板子上的拨码开关详细说明

1 2 3 4 5 6 7 8 启动设备
0 1 x x x x x x 串行下载,可以通过 USB 烧写镜像文件。
1 0 0 0 0 0 1 0 SD 卡启动。
1 0 1 0 0 1 1 0 EMMC 启动。
1 0 0 0 1 0 0 1 NAND FLASH 启动。

烧写头部信息

这个系列芯片都需要一个头部信息,然后加上真正的bin文件,这部分在手册8.7章节

imx6ull008.png

所以IVT+Boot data+DCD+.bin是烧到板子上的最终程序,写到这又花了好久看手册,发现官方的手册真不是个东西,这部分是略写的,有些根本表述不清楚

11/25

大早上的接着看芯片手册,发现手册上的一张图很形象的描绘了这部分内容,在资料很少的时候,应该自习读读手册,正点原子写的手册里也没有提及,这个图很形象的描绘了头部信息的位置。

imx6ull009.png

看到图,有一个疑问,按道理说灰色的部分是没用的,正点原子作者讲解的头部信息是按照nxp官方的文件头讲解的,还是回到手册,来看这句话imx6ull010.png

image.png

这句话flexible解释了图上的灰色部分,说明了这4kb的数据,减去1kb的偏移,剩下的3kb,任你怎么用就怎么用

IVT

image.png

image.png

突然感觉在这解释手册,其实关于这些参数在正点原子上手册中也都分析了,最重要的是,每个32位的的数据不是特定的,我认为这是最重要的,正点原子参考的是nxp的二进制源码反推的,只要在这3kb大小的里面,你可以随便操作,像上面的那个图一样,正点原子推导的IVT与boot data 是紧连着的。

Boot Data

image.png

这里注意一下,正点原子是设置了2mb大小,如果超过了就需要裁剪或者把这个数字调大

DCD

image.png

为什么要DCD,上面解释了没有最优的系统性能,甚至有些设备必须配置才能使用,具体使用信息,在手册311页,采用大端模式,DCD最大允许1768字节,结构如下

image.png

头结点

image.png

CMD

image.png

image.png

关于正点原子的,初始化了哪些寄存器这里就不介绍了,可以去看手册,最后想确认一下这个length是不是address与value的总大小,这里是Write data command format 总大小,就是 address+value+write data +command 的总大小

小结

看手册的日子里,不为 别的,主要是为了提高英语水平,哪里不会就要多看看芯片手册,相信没有什么比官方给的手册还要权威了。

分析imx6ull启动的头部信息就到这了,主要明白原理就ok了,还是多看看手册,不会的点一定要看手册

    评论
    0 评论
avatar

取消