ArtInChip U-Boot介绍
1. 功能支持
ArtInChip U-Boot 是基于官方版本 v2021.10 正式版进行移植开发的专用启动引导程序, 开发过程中只增加新功能支持,对原有功能并没有进行改动。
支持的主要功能如 表 3.3 所列。
表 3.3 U-Boot 功能列表
功能 | 描述 |
---|---|
支持 SPL | |
SPL Falcon 模式 | SPL 直接加载 Kernel |
启动介质 | SPI NOR/SPI NAND/SD Card/eMMC |
USB 量产升级 | |
SD Card 量产升级 | |
U盘升级 | |
文件系统 | FAT32、EXT2、EXT4 和 UBIFS 文件系统 |
GPT 分区格式 | SD/eMMC |
支持开机 Logo显示 | |
显示设备 | RGB, LVDS, MIPI |
安全启动 |
2. 运行环境
系统冷启动过程中经历的不同阶段有:
BROM(Boot ROM) -> SPL -> OpenSBI -> U-Boot -> Kernel
因此在 U-Boot SPL 运行之前,BROM 已经对系统进行了基本的初始化。 在不同的场景下,U-Boot SPL 的运行硬件环境状态如下文所描述。
2.1. 硬件模块
对于基本硬件模块,在 CPU 上电时默认进行初始化,具体如 表 3.4 所示。
表 3.4 基本硬件模块状态
名字 | 频率 | 备注 |
---|---|---|
AXI | 24MHz | 默认使能 |
AHB | 60MHz | 默认使能 |
APB0 | 24MHz | 默认使能 |
APB1 | 24MHz | 默认使能 |
CPU | 24MHz | 默认使能 |
SRAM | 60MHz | 默认使能 |
TIMER | 24MHz | 默认使能 |
2.2. 正常启动
正常启动时 BROM 已经对启动介质进行了检测,并且对所使用到的硬件模块进行了初始化。 具体如 表 3.5 所示。
表 3.5 正常启动时的硬件模块状态
名字 | 频率 | 备注 |
---|---|---|
DMA | 60MHz | SPI NAND/NOR 启动时使能 |
SDMC | 24MHz | 启动的 SDMC 控制器被使能 |
SPI | 24MHz | 启动的 SPI 控制器被使用 |
CE | 200MHz | 安全启动打开时被使能 |
USB | 60MHz | 默认关闭 |
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 | 默认使能 |