启动流程¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 1.0 | 01/30/2026 |
关键字说明¶
VMM:virtual machine monitor,虚拟机监控器
WFE:wait for event,等待外部事件
cx:core x
TTCL:time to console line,到 linux 命令行的时间
1. 概述¶
为了适应市场需求和满足广泛的应用新场景,SGS mHera 系列芯片跟进前沿的硬件设计和软件技术,从芯片设计层面满足用户对安全性、实时性、低功耗、高性能的要求。
-
该系列芯片六核 ARM contex A55 Hex Core64 位 ARMv8‑A 架构,支持 TrustZone,以确保关键资源(内存、中断、IP 等)得到保护,不受潜在的安全风险侵害。
-
软件设计上提供secure boot支持,能够在系统启动过程中验证和加载经过认证的软件,从而有效地防止篡改flash软件和抄袭flash软件。
SGS 提供的 SDK 开发包里包含多 image defconfig,用户可根据产品形态和方案需求选择合适的 image 配置。不同的 image defconfig 打包不同的功能镜像,对应的软件 boot flow 也不同,本文以对常见的几种 boot flow 进行说明。
本文档所介绍的启动流程场景默认开启security boot同时包括TF_A。若用户当前场景没有开启trustzone、signature&verify image 可自行忽略对应图示,流程图和结构框图的正确性不受影响。
本文档默认SGS对启动流程的内存划分合理且不冲突,不对boot flow过程加载地址和运行地址进行额外说明。
2. image defconfig说明¶
SDK 的 image defconfig 位于 project/configs/verify/defconfigs/ 目录下,以 nvr_mhera.emmc.glibc-12.4.0-arm64-ext4.ssm004a.s02a.2048.fccsp16_lpddr4x_defconfig 为例:
| defconfig字段 | 说明 |
|---|---|
| product(产品) | nvr、dispcam、usbcam 等,通过 defconfig 名称前缀区分不同产品形态 |
| boot medium(启动介质) | nor、spinand、emmc |
| rootfs type(根文件系统类型) | ramfs、ramdisk、squashfs、ext4fs |
| DDR size(DDR 大小) | |
| package(芯片封装类型) | fccsp16 |
| software feature(软件特征) | optee、str |
3. 典型场景boot flow¶
根据 ARMv8‑A 架构定义,系统的执行状态分为两个世界:用于运行可信任软件的 secure world 和运行不可信软件的 non‑secure world。同时又将处理器模式分成四种运行等级,分别为:EL0(用户模式)、EL1(操作系统内核模式)、EL2(虚拟机管理程序模式)和 EL3(安全监控模式)。
3.1. Pure Linux场景¶
3.1.1. Pure Linux启动流程¶
该场景以 NVR mhera spinand+squashfs 为例(如 nvr_mhera.spinand.glibc-12.4.0-arm64-squashfs.ssm004a.s01a.1024x1024.fccsp16_ddr4_optee_defconfig):non‑secure world 只运行 Linux OS,未启用 NS.EL2(hypervisor 层)和 secure world OS。
TF‑A(Trusted Firmware‑A):在系统启动流程中负责完成对CPU monitor mode的初始化设定以及GIC的初始化设定等。它有独立分区。整体启动链路为:BootROM →IPL → TF‑A → IPL_CUST → U‑Boot → Linux(内核 uImage.xz + squashfs 根文件系统)。
3.2. DualOs场景¶
- 暂未支持