BootChains介绍
通常开发板支持多种启动方式或模式,PanGu开发板使用的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
Boot chains组件
ROM code
The ROM code is a piece of software that takes its name from the read only memory (ROM) where it is stored. It fits in a few tens of Kbytes and maps its data in embedded RAM. It is the first code executed by the processor, and it embeds all the logic needed to select the boot device (serial link or Flash) from where the first-stage boot loader (FSBL) is loaded to the embedded RAM.
ROM代码是一款软件,其名称来自存储它的只读存储器(ROM)。 它可以容纳数十KB,并将其数据映射到嵌入式RAM中。 它是处理器执行的第一条代码,并且嵌入了选择引导设备(串行链路或Flash)所需的所有逻辑代码,第一级引导加载程序(FSBL)从该位置加载到内部RAM。
FSBL(First Stage Boot Loader)
第一阶段引导加载程序(FSBL)初始化时钟(部分)和外部RAM控制器。 最后,FSBL将第二阶段引导加载程序(SSBL)加载到外部RAM中并跳转到该RAM 地址处。
Trusted Firmware-A(TF-A)和U-Boot secondary program loader(U-Boot SPL)是两种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 11:47