RT600 BootROM RM解析 (4)

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 串行引导流程

image-20250520145208912

图 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.

作者

Gavin

发布于

2025-05-20

更新于

2025-05-20

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×