Linux 初识 Falcon Mode¶
本章节属于 Linux 启动优化的一个知识点,大概讲述认识下 Falcon Mode。
专有名词
| Acronym | Meaning |
|---|---|
| ATF | Arm Trusted Firmware |
| DTB | Device Tree Blob |
| DTS | Device Tree Source |
| FIT | Flattened Image Tree |
| OS | Operating System |
| ROM | Read-Only Memory |
| SoC | System on Chip |
| SPL | Secondary Program Loader |
1. U-Boot SPL¶
SPL 是 U-Boot 的精简版本。它有助于进行一些初始硬件配置(例如 DRAM使用 CPU 缓存作为 RAM 进行初始化)并加载更大、功能齐全的 U-Boot 版本。当板子启动时,除了ROM代码外,第一级引导加载程序是U-Boot SPL;和第二阶段引导加载程序是常规的 U-Boot(或 U-Boot)。需要明确的是:SPL 代表 Secondary Program Loader,这意味着ROM代码是加载(和执行)另一个程序的第一件事,而SPL是加载(并执行)另一个程序的第二件事。
Introduction to U-Boot SPL

在Arm V8架构上,Arm定义了一种首选的方式来使用Arm Trusted Firmware(ATF)引导安全组件。该过程包括以下几个步骤:
-
加载OP-TEE操作系统:ATF首先加载OP-TEE操作系统,该操作系统负责初始化安全世界。
-
加载U-Boot:在OP-TEE初始化之后,ATF加载U-Boot。然后,U-Boot动态修改设备树(Device Tree Blob,DTB),以包含加载Linux TEE(可信执行环境)驱动程序所需的特定节点。
-
启动Linux:通过修改后的DTB,Linux被启动,继续系统初始化过程。
这个顺序确保了Arm V8系统的安全和可控的引导过程。


2. Falcon Mode¶
在U-Boot中,引入了Falcon Mode以加速启动过程,允许它在不启动完整U-Boot的情况下启动Linux内核(或其他镜像)。 猎鹰模式依赖于SPL框架。在大多数实现中,SPL用于启动U-Boot。Falcon Mode扩展了这种方式,允许直接从SPL启动Linux内核。
Load and boot Linux kernel from SPL




3. 总结¶
对于本章节显得枯燥,这里需要总结下:Falcon mode 是依赖于SPL框架,可以直接跳过UBOOT第二阶段,加载Linux 内核,这总往往在于对快速启动要求比较高的时候会使用上,往往作为一种快速启动的优化手段。拥有此功能需要得到SoC 的支持,并非所有SoC都有Falcon Mode。