本篇文章是Nxp官方参考手册IMX6DQRM中Chapter 8System Boot的翻译,翻译中如有理解偏差和用词不当之处,请网友多多指教。
8.1 总揽
boot处理过程开始于处理器的上电复位,这时,硬件复位逻辑强制ARM内核执行芯片内置的ROM Boot程序。Boot ROM 代码使用内置的寄存器BOOT_MODE[1:0]状态–后者取决于eFuses和(或)GPIO设定状态,来确定启动流(boot flow)设备行为。
Boot的主要特性包含:
•支持从各种启动设备上启动
•串行下载支持
• 设备配置数据(DCD)和插件
• 数字签名和基于HAB的加密术
• 从低功耗模式唤醒
• 唤醒第二个内核(core)
boot ROM支持下面的启动设备:
• NOR Flash
• NAND Flash
• OneNAND Flash
• SD/MMC
• Serial ATA (SATA) HDD (only i.MX 6Dual/6Quad)
• Serial (I2C/SPI) NOR Flash and EEPROM
正常操作模式下,Boot ROM 使用BOOT_MODE的状态和eFUSEs来确定启动设备。当为了开发目的时,决定启动设备的eFUSEs常常被GPIO 引脚输入所重载。
含有新Image的启动设备,如SD/MMC Flash。典型的,这个配给程序(前者)被下载到内部RAM中,来允许对启动设备的编程。这个ROM串行下载器使用non-stream模式串行高速USB 。
Boot ROM 允许从低功耗和第二个Cortex-A9内核中唤醒。在启动时,ROM检查ARM内核 ID和电源Gating状态寄存器,在低功耗模式唤起时,主内核(ID=0)会跳过从启动设备加载Image,跳到保存到PERSISTENT_ENTRY0寄存器中的地址。在所有的电源模式下唤起时 ,次内核(ID!=0)跳到PERSISTENT_ENTRY<X>中的地址(这里0<X<4)。
设备配置数据(DCD)特性,允许Boot ROM代码从驻留在启动设备上的外部编程内核镜像(Image)中获取SOC配置数据,例如,DCD可以用来对DDR控制器编程,来优化启动执行的设定。DCD只能限定为内存区域和外围地址空间,且这些地址区域是为了启动(boot)所必须考虑的顾及 。