3.1.2. 运行环境
系统冷启动过程中经历的不同阶段有:
BROM(Boot ROM) -> SPL -> OpenSBI -> U-Boot -> Kernel
因此在 U-Boot SPL 运行之前,BROM 已经对系统进行了基本的初始化。
在不同的场景下,U-Boot SPL 的运行硬件环境状态如下文所描述。
3.1.2.1. 硬件模块
对于基本硬件模块,在 CPU 上电时默认进行初始化,具体如 表 3.4 所示。
表 3.4 基本硬件模块状态
| 名字 | 频率 | 备注 | 
|---|
| AXI | 24MHz | 默认使能 | 
| AHB | 60MHz | 默认使能 | 
| APB0 | 24MHz | 默认使能 | 
| APB1 | 24MHz | 默认使能 | 
| CPU | 24MHz | 默认使能 | 
| SRAM | 60MHz | 默认使能 | 
| TIMER | 24MHz | 默认使能 | 
 
3.1.2.2. 正常启动
正常启动时 BROM 已经对启动介质进行了检测,并且对所使用到的硬件模块进行了初始化。
具体如 表 3.5 所示。
表 3.5 正常启动时的硬件模块状态
| 名字 | 频率 | 备注 | 
|---|
| DMA | 60MHz | SPI NAND/NOR 启动时使能 | 
| SDMC | 24MHz | 启动的 SDMC 控制器被使能 | 
| SPI | 24MHz | 启动的 SPI 控制器被使用 | 
| CE | 200MHz | 安全启动打开时被使能 | 
| USB | 60MHz | 默认关闭 | 
 
3.1.2.3. USB 升级
无论是主动进入 USB 升级模式,还是由于启动失败进入 USB 升级模式,
都只有基本的硬件模块以及 USB 模块被使能,其他模块处于关闭状态。
具体如 表 3.6 所示。
表 3.6 升级模式时的硬件模块状态
| 名字 | 频率 | 备注 | 
|---|
| AHB0 | 60MHz | 进入 USB 升级时设置为 60MHz | 
| DMA | 60MHz | 默认关闭 | 
| SRAM | 60MHz | 跟随 AHB0 | 
| SDMC | 24MHz | 默认关闭 | 
| SPI | 24MHz | 默认关闭 | 
| USB | 60MHz | 默认使能 |