东山Pi柒号-3-STM32MP1 引导链概述

LLLLLLLLK / 2024-11-08 / 原文

进行移植前先看看ST官网的一些资料,了解芯片的工作方式:

STM32MP1 引导链概述

https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_boot_chain_overview

image

启动步骤如下

  1. BROM(BL1):芯片内部程序,根据BOOT PIN读取对应启动设备里的程序到内部SYSRAM执行,工作在Secure World安全模式下。由于SYSRAM很小,一般只用于加载First stage bootloader (FSBL)
  2. FSBL(BL2):第一阶段bootloader,负责初始化时钟树和DDR,然后加载Second stage bootloader (SSBL)并跳到DDR执行。常见的FSBL有U-boot SPL,Trusted Firmware-A,它们的区别在于是否对SSBL固件进行一些验证再执行,也就是Secure Boot.
  3. SSBL(BL3):第二阶段bootloader,如果不需要Secure Boot,则可以直接由U-boot SPL拉起U-Boot执行。在Secure Boot时分为下面几步执行:
    • BL31:TF-A(Trusted Firmware-A)初始化安全执行环境,并对BL32进行进行固件安全验证启动。
    • BL32:OP-TEE(Trusted Execution Environment 可信执行环境) 工作在安全模式下,使用ARM TrustZone硬件的安全隔离环境独立运行,可为用户空间程序提供安全服务交互。启动完成后切换到Normal World非安全模式,并启动BL33。
    • BL33:U-boot
  4. Kernel

这里有一篇文章有详细说明: