Uboot 初识Faclon Mode

文摘   2024-08-14 07:31   广东  

关注+星号公众号,不容错过精彩

作者:HywelStar

本章节属于Linux 启动优化的一个知识点,大概讲述认识下Faclon Mode。

专有名词

AcronymMeaning
ATFArm Trusted Firmware
DTBDevice Tree Blob
DTSDevice Tree Source
FITFlattened Image Tree
OSOperating System
ROMRead-Only Memory
SoCSystem on Chip
SPLSecondary 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)引导安全组件。该过程包括以下几个步骤:

  1. 加载OP-TEE操作系统:ATF首先加载OP-TEE操作系统,该操作系统负责初始化安全世界。
  2. 加载U-Boot:在OP-TEE初始化之后,ATF加载U-Boot。然后,U-Boot动态修改设备树(Device Tree Blob,DTB),以包含加载Linux TEE(可信执行环境)驱动程序所需的特定节点。
  3. 启动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. 总结

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


码思途远
一位码农的日常分享,探索软件技术知识与新闻的数字十字路口。