1. ARM Trusted Firmware (ATF/TF-A) 概述
ARM Trusted Firmware(简称ATF或TF-A)是ARM架构下最核心的开源安全固件参考实现。作为ARM官方维护的项目,它为基于ARM A-profile系列处理器(包括Armv7-A、Armv8-A及后续架构)的设备提供了标准化的安全基础设施。
这个项目最初由ARM在2013年启动,目的是为ARMv8-A架构提供一套标准化的安全固件实现。经过多年发展,它已经成为ARM生态系统中安全启动和安全运行时的实际标准。目前,几乎所有基于ARMv8/ARMv9架构的芯片都会集成TF-A作为其安全固件的基础。
注意:虽然官方名称已更新为Trusted Firmware-A(TF-A),但在业界和开发者社区中,"ATF"这个简称仍然被广泛使用。在本文中,我们将交替使用这两个术语,它们指的是同一个项目。
2. 核心架构与启动流程
2.1 ARM异常等级与权限模型
ARMv8-A架构定义了四个异常等级(Exception Level),权限从高到低依次为:
-
EL3:最高特权级,仅运行在安全状态(Secure State)。TF-A的核心组件BL31运行在此等级,负责安全监控、SMC调用处理、世界切换和电源管理等关键安全功能。
-
EL2:主要用于虚拟化扩展,运行Hypervisor。在非安全世界(Non-secure World)中,它管理虚拟机的创建和运行。
-
EL1:运行操作系统内核。在安全世界运行TEE操作系统(如OP-TEE),在非安全世界运行Linux等通用操作系统。
-
EL0:运行用户态应用程序,权限最低。
这种分层架构的关键在于EL3作为安全世界和非安全世界之间的唯一桥梁。所有跨世界的通信都必须通过EL3进行,这确保了严格的安全隔离。
2.2 标准冷启动流程
TF-A采用模块化的分层启动架构,将启动过程分为多个Boot Loader(BL)阶段。每个阶段都有明确的职责,并通过链式验签确保信任传递。标准冷启动流程主要包括以下阶段:
-
BL1:芯片复位后执行的第一阶段固件。它负责最基本的硬件初始化,包括CPU核心、时钟、内存控制器等,然后加载并验证BL2镜像。
