BootChains介绍
通常开发板支持多种启动方式或模式,i2X-MP15X开发套件使用的STM32MP1芯片平台的中引入了一个新的术语,Boot chains。Boot chains字面意思为启动链,但不够准确描述,所以我们不做翻译,后文依然保持使用Boot chains的写法和称呼。
Boot chains的引入是为了区分两类启动流程中用的的各个软件组件或程序,STM32MP1平台的Boot chains有两种方式
Basic boot chain:使用U-Boot SPL作为FSBL,U-Boot作为SSBL
Trusted boot chain:使用 Trusted Firmware-A (TF-A) 作为FSBL,使用 U-Boot 作为SSBL
i2S-MP15X核心板使用的是Trusted boot chain方式启动的。
Boot chains组件
ROM code
ROM代码是一款软件,其名称来自存储它的只读存储器(ROM)。 它可以容纳数十KB,并将其数据映射到嵌入式RAM中。 它是处理器执行的第一条代码,并且嵌入了选择引导设备(串行链路或Flash)所需的所有逻辑代码,第一级引导加载程序(FSBL)从该位置加载到内部RAM。
FSBL(First Stage Boot Loader)
第一阶段引导加载程序(FSBL)初始化时钟(部分)和外部RAM控制器。 最后,FSBL将第二阶段引导加载程序(SSBL)加载到外部RAM中并跳转到该RAM 地址处。
TF-A(Trusted Firmware-A)和U-Boot SPL(U-Boot secondary program loader)是两种FSBL。
SSBL(Second-Stage Boot Loader)
SSBL运行在更大范围的内存中,因此它可以实现复杂的功能(USB,以太网,显示等),这对于使Linux内核加载更为灵活(从Flash设备, 网络等),并且易于使用(向用户显示初始屏幕)。 U-Boot通常用作嵌入式系统中的Linux引导程序。
Boot chains的启动流程
Arm Cortex-A secure ,粉色的区域是Secure部分
Arm Cortex-A non-secure , 深蓝色的区域是Non-secure部分
Arm Cortex-M , 浅蓝色的区域是CM4部分
Trusted boot chain
Basic boot chain
Basic boot chain和Trusted boot chain特性对比
Features | Trusted boot chain | Basic boot chain |
Boot device support | ||
eMMC | Supported | Supported |
SDCard | Supported | Supported |
NOR | Supported | Supported |
NAND | Supported | Not supported |
Flash programming via UART | Supported | Not supported |
Flash programming via USB | Supported | Not supported |
Device control | ||
DDR initialization | Supported | Supported |
PMIC management | Supported | Supported |
System shutdown | Supported | Not supported |
SMP CPU boot and reset | Supported | supported |
Low power management | Supported | Not supported |
Security features | ||
Authentication ECDSA Based | Supported | Not supported |
Secure boot TZEN=1 - SMC Firewalling | Supported | Not supported |
Cortex-M4 isolation control | Supported | Not supported |
Non secure boot - Unlimited access to RCC and PWR | Supported | Supported |
HSI/CSI Calibration | Supported | Not supported |
Security Tamper | Supported | Not supported |
Security OTP | Supported | Not supported |
Security IWDG1 | Supported | Not supported |
最后编辑:SteveChen 更新时间:2024-09-18 16:43