1、芯片上电运行的第一段代码
on-chip boot ROM 的 boot ROM code
2、boot mode
boot ROM code通过寄存器BOOT_MODE[0:1]的值决定启动方式。
boot mode被寄存器BOOT_MODE[0:1]控制,寄存器BOOT_MODE[0:1]被引脚BOOT_MODE0和BOOT_MODE1控制。
Serial Downloader
on-chip boot ROM 放着芯片自带的 boot ROM code,boot ROM code可以通过 USB 或者 UART 接收简单的配置固件(a provisioning program)到 RAM,然后运行配置固件,配置固件可以通过 USB 或者 UART 接收镜像文件到 SD/MMC flash(boot devices)。
Internal Boot
boot ROM code初始化基本硬件后,从选中的boot device加载镜像文件,验证完镜像文件后运行镜像文件。
如果BT_FUSE_SEL等于1,启动参数由寄存器 eFUSEs 决定(产品用)
如果BT_FUSE_SEL等于0,启动参数 GPIOs 决定(开发测试用)
Boot From Fuses
如果BT_FUSE_SEL等于0,表示boot device还没下载镜像文件,会进入 Serial Downloader 模式。
如果BT_FUSE_SEL等于1,转到 Internal Boot
Boot From Fuses有一个优点:BT_FUSE_SEL出厂默认是0,通过 Serial Downloader 模式批量下载镜像文件到 boot device,并修改BT_FUSE_SEL为1,重启后直接从boot device启动,省去了修改BOOT_MODE0和BOOT_MODE1引脚电平改变boot mode模式。
3、Device Configration
启动参数
boot ROM code读取启动参数,来决定如何运行代码。
启动参数:
- 决定选择哪个boot device
- boot device的配置(比如 SD总线宽度、支持的速率)
DCD
DCD参数存放在镜像文件中
标签:BT,code,ROM,boot,BOOT,system,镜像文件,IMX6ULL From: https://www.cnblogs.com/god-of-death/p/16909572.html