如图为 ARM TrustedFirmware (可信固件) 开源项目集合,它为带有 Exception Level 3 (EL3) Secure Monitor 的 ARM 架构 (Armv8-A、Armv9-A 和 Armv8-M 等) 提供了安全软件的实施参考实现。 1. TF-A 概述 Trusted Firmware-A (TF-A) project是 ARM 可信固件的一种实施,主要面向 Armv7-A and Armv8-A ...
ATF(ARM Trusted Firmware)是ARM公司提供的一款开源安全固件,旨在为基于ARM架构的系统提供信任根(Root of Trust)和安全启动功能。ATF(ARM Trusted Firmware)通过TrustZone技术实现了硬件级别的隔离,在硬件层面上提供安全和非安全区域的隔离,确保敏感数据和代码的保护,确保了系统中的安全和非安全组件能够相互独立运...
void bl1_main(void) { unsigned int image_id; /* 输出一些提示信息 */ NOTICE(FIRMWARE_WELCOME_STR); NOTICE("BL1: %s\n", version_string); NOTICE("BL1: %s\n", build_message); INFO("BL1: RAM %p - %p\n", (void *)BL1_RAM_BASE, (void *)BL1_RAM_LIMIT); print_errata_status(); ...
ATF(Arm Trusted Firmware) ATF(Arm Trusted Firmware)是一个为ARMv8-A架构SoC提供的安全固件,其包含了多个组件和功能来确保系统的安全启动和运行时环境。以下是ATF中的一些主要功能和组件: 1. **BL1(Boot Loader Stage 1)**: - 这是ATF的第一阶段引导加载程序。 - 负责从非易失性存储器(如eMMC、UFS、NAN...
BL1 - AP Trusted ROM,一般为BootRom。 BL2 - Trusted Boot Firmware,一般为Trusted Bootloader。 BL31 - EL3 Runtime Firmware,一般为SML,管理SMC执行处理和中断,运行在secure monitor中。 BL32 - Secure-EL1 Payload,一般为TEE OS Image。 BL33 - Non-Trusted Firmware,一般为uboot、linux kernel。
ARM Trusted Firmware分析——中断、异常 中断如何送到不同EL?如何配置? 1. BL31异常向量表 BL31异常向量表根据如下定义实现: ARMv8-A规定Exception Vector Table大小为2KB,并且是2KB对齐;一共6个Vector Entry,每一个Vector Entry大小为128B。 .macro vector_base label, section_name=.vectors...
ARM Trusted Firmware——编译选项(二) @ 目录 1. 常用部分 2. 安全相关 2.1 签名 2.2 加密 2.3 哈希 2.4 中断 3.GICv3驱动程序选项 4. 调试选项 1. 常用部分 2. 安全相关 2.1 签名 2.2 加密 通过DECRYPTION_SUPPORT选择加密算法;通过ENC_KEY选择秘钥;通过ENCRYPT_BL31/ENCRYPT_BL32选择是否加密镜像...
Non-Trusted Firmware Updater职责是从外部接口加载完整的SoC固件到SoC的NVM中。外部接口可能是USB/UART/SD-MMC/NAND/NOR/Ethernet等;SOC固件包括SCP固件、AP固件、TOS、非安全世界固件等;SOC NVM包括NAND Flash等。 3.5.3 Firmware Table of Contents 3.6 Certificate Structure and Content ...
TF(Trusted Firmware)是ARM在Armv8引入的安全解决方案,为安全提供了整体解决方案。它包括启动和运行过程中的特权级划分,对Armv7中的TrustZone(TZ)进行了提高,补充了启动过程信任链的传导,细化了运行过程的特权级区间。TF实际有两种Profile,对ARM Profile A的CPU应用TF-A,对ARM Profile M的CPU应用TF-M。我们一般接...
1、ATF(ARM Trusted firmware) ATF将系统启动从最底层进行了完整的统一划分,将secure monitor的功能放到了bl31中进行,这样当系统完全启动之后,在CA或者TEEOS中触发了smc或者是其他的中断之后,首先是遍历注册到bl31中的对应的service来判定具体的handle,这样可以对系统所有的关键smc或者是中断操作做统一的管理和分配。AT...