当前位置: 首页 > news >正文

嵌入式Linux系统启动流程

文章目录

  • 标准启动流程
  • 非安全启动流程
  • 安全启动流程
  • VS

标准启动流程

  • ROM Code
    • 位置:片上 ROM(<128KB)
    • 功能:
      • 基本时钟树初始化
      • 从启动设备(Flash/SD/ 以太网 / 串口)加载 FSBL
      • 启动 FSBL
    • 特点:芯片出厂固化,不可修改,是整个系统的信任根。
  • First Stage Boot Loader (FSBL)
    • 位置:内置 RAM(<256KB)
    • 功能:
      • 完成时钟树初始化
      • 初始化外部 RAM(DDR/LPDDR)控制器
      • 从启动设备加载 SSBL
    • 特点:体积小,只做最基础的硬件初始化,为加载更大的 SSBL 做准备。
  • Second Stage Boot Loader (SSBL)
    • 位置:外部 RAM(≥512MB)
    • 功能:
      • 从存储器或以太网加载启动文件系统(bootfs)
      • 显示开机画面(splash screen)
      • 加载 Linux 内核(uImage/zImage)和设备树(*.dtb)
      • 启动 Linux 内核
    • 常见实现:U-Boot
  • Linux Kernel
    • 位置:外部 RAM
    • 功能:
      • 内核初始化、平台驱动加载
      • 挂载根文件系统(rootfs)
      • 启动用户空间初始化进程(/sbin/init 或 systemd)
  • Linux user space
    • 位置:外部 RAM
    • 功能:
      • 运行用户空间服务和应用程序

非安全启动流程

  • Cortex-A7 + Cortex-M4 异构多核 SoC 上的具体实现

  • ROM Code
    • 从启动介质加载 FSBL(U-Boot SPL)到 SYSRAM
  • FSBL (U-Boot SPL)
    • 位置:SYSRAM (256KB)
    • 初始化 DDR 控制器,将 SSBL(U-Boot)加载到 DDR
  • SSBL (U-Boot)
    • 位置:DDR
    • 加载 Linux 内核、设备树和根文件系统到 DDR
    • 启动 Linux 内核
  • Linux Kernel & User Space
    • 内核在非安全世界(Non-Secure)运行
    • 可选地,通过 RPMsg 等机制与 Cortex-M4 的固件(Firmware)通信

安全启动流程

  • 启用 TrustZone (TZ),引入了可信执行环境(TEE),整个启动链都经过签名验证
  • ROM Code
    • 验证 FSBL(TF-A)的签名,验证通过后加载到 SYSRAM
  • FSBL (TF-A)
    • 位置:SYSRAM (256KB)
    • 初始化 DDR,验证 SSBL(U-Boot)的签名,加载到 DDR
    • 初始化安全世界(Secure World),启动 TEE(如 OP-TEE)
  • TEE (TF-A or OP-TEE)
    • 位置:SYSRAM 或 DDR 的安全区域
    • 提供可信应用(Trusted Applications)运行环境,处理密钥、加密等敏感操作
  • SSBL (U-Boot)
    • 位置:DDR
    • 在非安全世界运行,加载并验证 Linux 内核镜像
    • 启动 Linux 内核
  • Linux Kernel & User Space
    • 内核在非安全世界运行,通过特定的 SMC 调用与安全世界的 TEE 通信
    • Cortex-M4 的固件也可以通过安全通道与 A7 核交互

VS

对比项标准启动非安全启动安全启动
信任根ROM CodeROM CodeROM Code + 签名验证
启动链ROM → FSBL → SSBL → KernelROM → SPL → U-Boot → KernelROM → TF-A → OP-TEE → U-Boot → Kernel
安全特性签名验证、TEE、安全存储
硬件隔离TrustZone 安全 / 非安全世界隔离
Cortex-M4不涉及可选,通过 RPMsg 通信可选,可通过安全通道通信
  • FSBL/SPL/TF-A 的角色:在非安全启动中,FSBL 是 U-Boot SPL;在安全启动中,FSBL 是 TF-A(Trusted Firmware-A),它负责初始化安全世界
  • SSBL/U-Boot:在两种模式下都是 U-Boot,但在安全模式下,它的镜像也需要被 FSBL 验证签名
  • TEE (OP-TEE):是安全启动的核心,提供了一个隔离的执行环境,保护关键资产
  • 签名验证:安全启动的每一步(ROM → FSBL → SSBL → Kernel)都对下一个阶段的镜像进行签名验证,防止恶意代码篡改启动链
http://www.jsqmd.com/news/422229/

相关文章:

  • 【2026知网新规】如何有效降低论文AI率?5款国内外降AIGC工具实测与教程
  • 接入智能家居,Home Assistant简介
  • 引导程序uboot
  • @anthropic-ai/claude-code 交互,及常用命令清单
  • 配置ftfp服务和nfs服务
  • 2026年1月文章一览
  • 嵌入式Linux映像文件组成
  • 嵌入式Linux系统移植
  • why Latin letters never play well。
  • 东方博宜OJ 1152:求n个数的最大值和最小值 ← 数组
  • Eisai推出肾癌患者数字化支持平台
  • 学术写作必备工具指南:详解六种基于AI技术的智能论文引用标注方法
  • 8款论文写作工具提供自动目录生成和内容优化功能,大幅提升研究效率
  • 如何获取微信公众号的 Access Token
  • 智能论文写作工具整合目录自动生成与内容优化,助力研究更高效省时。
  • JIPB项目文章|DAP-seq助力解析大豆转录因子在种子含油量中的调控作用
  • 字符串作业
  • WPF引导定位软件-定位纠偏(带角度)
  • 基于springboot计算机科学拔尖学生培养基地系统
  • AI自动化文档生成工具-Mintlify简介
  • 基于springboot计算机岗位推荐系统
  • 德尔泰(Delta)宏观研判:穿透360《头号玩家》的底层收割黑盒,数字资产主权危机与法理确权路径
  • AI自动化文档生成工具-Mintlify实操
  • 基于springboot课外学习生活活动平台
  • Blender-MCP服务源码6-Blender插件运行
  • 2026-02-28 闲话
  • 基于springboot课程管理系统
  • Mac 显示所有的隐藏文件
  • 世纪辩论:马克思 丁元英
  • 从底层解释一下计算机的原理