Edit online

正常启动

9 Aug 2024
Read time: 4 minute(s)

启动介质选择

BROM 程序支持以下启动介质:
  • eMMC
  • SD Card
  • SD Card FAT32/exFAT
  • SPI NAND
  • SPI NOR
BROM 支持以下启动介质顺序选择:
  1. 通过 eFuse 配置固定的启动介质

    用户可以 正常启动选择固定的启动介质。启动过程中,BROM 会读取对应的配置, 尝试从选择的启动介质进行启动。

  2. 默认的启动介质顺序
    如用户未通过 eFuse 配置固定的启动介质,BROM 则按照以下默认的启动介质顺序逐一尝试启动:

    64

    1. BROM 默认的启动介质顺序
    注: 如果 BROM 通过上述启动介质顺序执行启动时均未成功,则需要进入升级模式

使用 eFuse 配置启动介质

用户可以通过配置 eFuse 中的以下三个字段选择固定的启动介质:
  1. Primary boot device:通过 eFuse 烧录首选启动介质。如果该字段值有效,BROM 直接尝试从该字段指定的介质读取固件。
  2. Secondary boot device:通过 eFuse 烧录次选启动介质。

    如果用户没有烧录有效的 Primary boot device 值,或者 BROM 从 Primary boot device 读取固件失败且 Secondary boot device 值有效,则尝试从 Secondary boot device 指定的介质读取固件。

关于 eFuse 中的启动配置,可查看 正常启动

BROM 在执行启动的过程中,对相同的启动介质只会尝试一次启动。

如果 Primary boot deviceSecondary boot device 都设为 SD 卡启动且未设置跳过前置的 SD 卡启动阶段,按照流程,BROM 会尝试从 SD 卡启动三次,但是 BROM 会记录是否已经尝试过通过该介质启动,如果尝试过则不再尝试。因此实际上 BROM 只会尝试一次,后续两次直接被跳过。启动介质的有效值如下表所示:
1. 启动介质索引值
eFuse 启动介质索引值 描述
0x0 默认值,没有配置启动介质,按照固定顺序尝试
0x1 SPI NAND(仅支持 SPI0 启动)
0x2 SPI NOR(仅支持 SPI0 启动)
0x3 SDMC0 eMMC
0x4 SDMC1 SD Card
其他 无效值,等同 0x0

eFuse 中的 BROM 配置区域

下表列出了 eFuse 中的 64 位 BROM 配置位域及其详情:
位域 字段 默认值 功能描述
31:30 - - -
29: JTAG disable 0
  • 0: JTAG 使能
  • 1: JTAG 关闭
28:27 SPI_ENC_EN 0
  • 0: SPI ENC 不使能
  • 1: SPI ENC 使能
26:22 PLL CINT CFG 0 PLL_CINT’s bit[6:2]
21 PLL CINT enable 0
  • 0: 不通过 eFuse 配置 CINT 的值
  • 1: 通过 eFuse 配置 CINT 的值
20 SDMC ext_mux_div 0
  • 0: Ext DIV 为 1
  • 1: Ext DIV 为 2
19:18 SDMC sample phase 0
  • 0: 0 度
  • 1:90 度
  • 2:180 度
  • 3:270 度
17:16 SDMC drive phase 0
  • 0: 180 度
  • 1:270 度
  • 2:0 度
  • 3:90 度
15 CPU High speed enable 0
  • 0: BROM CPU 24MHz,AXI/AHB 60MHz
  • 1: BROM 设置 CPU 216MHz,AXI/AHB 200MHz
14 Checksum disable 0
  • 0: BROM 校验所读取镜像的 32 位累加校验和
  • 1: BROM 不校验所读取镜像的 32 位累加校验和
13 PLL_FRA0 disable 0
  • 0: PLL_FRA0 使能,默认输出频率 1008MHz
  • 1: PLL_FRA0 关闭
12 PLL_INT1 disable 0
  • 0: PLL_INT1 使能,默认输出频率 1.2GHz
  • 1: PLL_INT1 关闭
11 SPI DMA disable 0
  • 0: SPI NOR/SPI NAND 读取数据时,使用 DMA
  • 1: SPI NOR/SPI NAND 读取数据时,不使用 DMA
10 dce_dis 0
  • 0: BROM 启动时,使用 DCE 来校验启动镜像
  • 1: BROM 启动时,不使用 DCE 来校验启动镜像
9 SD/eMMC DMA disable 0
  • 0: SD/eMMC 读取数据时,使用 DMA
  • 1: SD/eMMC 读取数据时,不使用 DMA
8 Skip SD Phase 0
  • 0: 启动时,总是先尝试从 SD card 启动。用于量产或开发调试
  • 1: 启动时,直接按照选定的启动介质进行启动
7:4 Secondary boot device 0 次选启动介质,具体值参考启动介质索引值
3:0 Primary boot device 0 首选启动介质,具体值参考启动介质索引值