RT600 BootROM RM解析 (4)
RT600 RM CH41:RT6xx 非安全BootROM (4)
Recovery Boot Mode 和 Serial Boot Mode
41.6 Recovery boot 模式
BootROM支持恢复引导 —— 当主引导镜像因异常(例如镜像升级过程中破坏引导镜像的错误)而损坏时,可将设备恢复到特定状态的选项。
在 RT6xx 中,SPI NOR/EEPROM 设备支持作为恢复介质,并且可以指定 SPI0-SPI7 中的一个作为连接 SPI NOR/EEPROM 设备的接口。参见表 996 中的 SPI 外设引脚列表。
当主引导失败且启用恢复引导时,BootROM进入恢复引导模式。
恢复引导过程开始时,BootROM使用来自 IRC48M
的 24 MHz 时钟,通过检查制造商 ID(MID)来探测 SPI NOR/EEPROM 设备的存在。一旦检测到设备,BootROM会使用 24 MHz 时钟将恢复镜像从 SPI NOR/EEPROM 设备加载到片上 SRAM,然后对镜像进行完整性检查 / 镜像认证。
如果完整性检查 / 认证通过,BootROM将跳转到恢复引导镜像;否则,如果允许,将进入 ISP 模式。如果禁用 ISP 引导,BootROM将锁定设备。
41.6.1 恢复引导 OTP 设置
恢复引导字段位于 BOOT_CFG0
OTP 字中,从偏移量 17 开始,宽度为 3 位。详情见表 1014。
表 1014. 恢复引导 OTP 字段
RECOVERY_SPI_PORT 用于冗余 SPI 闪存引导的 FlexComm 端口 |
值 | |
---|---|---|
FC0 | 使用 Flexcomm0 引脚 PIO0_0(SCK)、PIO0_1(MISO)、PIO0_2(MOSI)、PIO0_3(SSEL) | 3’b000 |
FC1 | 使用 Flexcomm1 引脚 PIO0_7(SCK)、PIO0_8(MISO)、PIO0_9(MOSI)、PIO0_10(SSEL) | 3’b001 |
FC2 | 使用 Flexcomm2 引脚 PIO0_14(SCK)、PIO0_15(MISO)、PIO0_16(MOSI)、PIO0_17(SSEL) | 3’b010 |
FC3 | 使用 Flexcomm3 引脚 PIO0_21(SCK)、PIO0_22(MISO)、PIO0_23(MOSI)、PIO0_24(SSEL) | 3’b011 |
FC4 | 使用 Flexcomm4 引脚 PIO0_28(SCK)、PIO0_29(MISO)、PIO0_30(MOSI)、PIO0_31(SSEL) | 3’b100 |
FC5 | 使用 Flexcomm5 引脚 PIO1_3(SCK)、PIO1_4(MISO)、PIO1_5(MOSI)、PIO1_6(SSEL) | 3’b101 |
FC6 | 使用 Flexcomm6 引脚 PIO3_25(SCK)、PIO3_26(MISO)、PIO3_27(MOSI)、PIO3_28(SSEL) | 3’b110 |
41.6.2 恢复引导流程

图 203. 恢复引导流程
41.7 Serial Boot模式
41.7.1 简介
BootROM支持通过串行接口(例如 SPI 从机、UART)将镜像加载到片上 SRAM,然后引导至该镜像。支持的串行引导外设如下:
- UART
- SPI 从机
- I2C
- USB HID
串行引导复用了 ISP 引导的相同数据包格式和简化命令集。支持的命令如下:
Get-Property
Set-Property
Write-Memory
更多详细信息请参见第 41.8 节。
41.7.2 串行引导流程

图 204. 串行引导流程
41.7.3 通过 UART 的串行引导
当选择 UART 接口作为串行引导接口时,BootROM使用 8-N-1 模式通过 UART 接口读取引导镜像。此模式涉及的命令如下:
Ping
(用于自动波特率检测)Get-Property
(可选,用于主机工具获取最大有效载荷大小,主机可跳过此命令并直接使用 512 字节有效载荷大小对镜像进行打包)Write-memory
有关 Ping 和 Write-Memory 命令的详细信息,请参见第 41.8.5 节,Write-Memory 命令中的最大有效载荷大小为 512 字节。
41.7.4 通过 SPI 的串行引导
BootROM支持通过 SPI 接口加载引导镜像,其中 SPI 工作在 SPI 从机模式 3 和 8 位数据模式下。
BootROM在配置的 SPI 接口上响应主机系统。一旦 SSEL
变为低电平,传输即开始。出厂设置下的默认最大 SPI 速度为 24 MHz,当内核以高速引导模式运行时,速度可高达 50 MHz。
此模式涉及的命令如下:
Set-Property
Get-Property
(可选,用于主机工具获取最大有效载荷大小,主机可跳过此命令并直接使用 512 字节有效载荷大小对镜像进行打包)Write-memory
有关 Set-Property 和 Write-Memory 命令的详细信息,请参见第 41.8.5 节,Write-Memory 命令中的最大有效载荷大小为 512 字节。
41.7.5 通过 I2C 的串行引导
BootROM可通过 I2C 接口加载引导镜像,其中 I2C 工作在从机模式,7 位地址为 0x10
。此引导模式使用的命令为:
Get-Property
(可选,用于主机工具获取最大有效载荷大小,主机可跳过此命令并直接使用 512 字节有效载荷大小对镜像进行打包)Write-Memory
有关 Write-Memory 命令的详细信息,请参见第 41.8.5 节,Write-Memory 命令中的最大有效载荷大小为 512 字节。
41.7.6 通过 USB HID 的串行引导
BootROM可通过 USB 加载引导镜像并引导至该镜像,其中 USB 工作在 HID 模式下。
选择引导模式为 HID 模式并确保 HID 成功模拟后,使用以下命令将引导镜像加载到 RAM 中运行。
1 | blhost.exe -u 0x1fc9, 0x0020 write-memory 0x1c000 image.bin |
有关 Write-Memory 命令的详细信息,请参见第 41.8.5 节,Write-Memory 命令中的最大有效载荷大小为 512 字节。
- 0x1FC9, 0x0020 is PID,VID of the HID device.
- image.bin is the boot image
Note: USB boot requires the use of an
external 24 MHz crystal
on the main crystal oscillator.
RT600 BootROM RM解析 (4)
https://dustofstars.github.io/NXP/RT600/BootROM/rt600-bootrom-rm解析-4/