跳转至

启动流程

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 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 为例:


    图解1 defconfig 字段含义说明
    defconfig字段 说明
    product(产品) nvr、dispcam、usbcam 等,通过 defconfig 名称前缀区分不同产品形态
    boot medium(启动介质) nor、spinand、emmc
    rootfs type(根文件系统类型) ramfs、ramdisk、squashfs、ext4fs
  • ramfs:一般是pure linux启动
  • ramfs rootfs 一般为了快速启动使用
  • DDR size(DDR 大小)
  • 2048: 2G Byte
  • 1024x1024: 2G Byte
  • package(芯片封装类型) fccsp16
    software feature(软件特征) optee、str
  • optee:trustzone场景,secure world运行optee os
  • str: suspend to ddr,CPU掉电,仅保留DDR自刷新,系统当前状态保存在DDR中
  • 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 根文件系统)。


    图解2 pure linux 启动流程

    3.2. DualOs场景

    • 暂未支持