启动流程

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 03/31/2024
    1.1
  • Added dualos description
  • 07/17/2024

    关键字说明

    WFE:wait for event,等待外部事件

    cx:core x


    1. 概述

    Sigmastar ifado 系列芯片搭载单核ARM Cortex-A7内核,软件设计上提供secure boot支持,能够在系统启动过程中验证和加载经过认证的软件,从而有效地防止篡改flash软件和抄袭flash软件。

    Sigmastar提供的SDK开发包里包含多image defconfig,用户根据产品形态和方案需求选择一种合适的image配置即可。不同的image defconfig打包不同的功能镜像,对应的软件boot flow也不同,本文对常见的几种boot flow进行说明。

    如果需要了解nor/nand/emmc等存储分区的划分,以及nand启动过程跳bad block逻辑和跳备份分区逻辑。请参考文档《系统分区》。

    不同应用场景的image配置defconfig和编译命令,请参考文档《环境搭建》。

    2. image defconfig说明

    SDK的image defconfig位于project/configs/defconfigs/目录下,以ipc_ifado.spinand.uclibc-9.1.0-ubifs.ssc032a.128.qfn128_dualsnr_defconfig为例:


    图解1 defconfig 字段含义说明

    defconfig字段 说明
    product(产品) ipc、ipc-rtos、usbcam
    boot medium(启动介质) nor、spinand、emmc
    rootfs type(根文件系统类型) ramfs、ramdisk、squashfs、ext4fs
  • ramfs:一般是pure linux启动
  • ramfs rootfs 一般为了快速启动使用
  • DDR size(DDR 大小)
  • 64: 64M Byte
  • 128: 128M Byte
  • 256: 256M Byte
  • package(芯片封装类型) QFN88、QFN128、QFN68
    software feature(软件特征)
  • dualsnr:将4 lane MIPI拆成2+2lane 可接入双sensor
  • str: suspend to ddr,CPU掉电,仅保留DDR自刷新,系统当前状态保存在DDR中
  • ptree: rtos pipeline tree,rtos自动运行pipeline tree application
  • 3. 典型场景boot flow

    Ifado系列32位处理器模式分成三种特权等级,分别为:PL0,PL1,PL2。

    3.1. 场景一

    该场景是ipc/usbcam product的boot flow:只运行linux一个os。

    SMF(secure monitor firmware):在系统启动流程中负责完成对CPU monitor mode的初始化设定以及GIC的初始化设定。SMF并没有独立的分区,而是内嵌在IPL binary image里。


    图解2 pure linux 启动流程

    3.2. 场景二

    该场景是dualos product的boot flow:只运行rtos与linux。rtos可以支持快速初始化sensor并创建pipeline,linux启动后可以直接进行取流等业务。


    图解3 dualos 启动流程

    ifado系列等芯片仅有单个core,RTOS首先运行在core0 Secure world并在preload app完成flash操作后,进行load linux并run linux on core0 non-secure world。