设为首页 加入收藏

TOP

ARM Trusted Firmware——编译选项(二)(一)
2023-07-23 13:29:39 】 浏览:40
Tags:ARM Trusted Firmware

@

1. 常用部分

编译选项 解释
BL2
指定生成fip文件的BL2镜像的路径。在这种情况下,将不会构建TF-A中的BL2
BL31
指定生成fip文件的BL31图像的路径。在这种情况下,将不会构建TF-A中的BL31
BL32
指定生成fip文件的BL32图像的路径。在这种情况下,将不会构建TF-A中的BL32
BL33
主机文件系统中BL33映像的路径。如果使用TF-A BL2,这对于fip文件是强制性的
BL2_AT_EL3 使能后,BL2镜像会运行在EL3异常等级
BL2_IN_XIP_MEM 使能后,BL2会运行在XIP存储设备上。只需要在RAM上初始化RW段,RO代码段不需要拷贝
BL32_EXTRA1 指定生成fip文件的TOS Extra1镜像路径
BL32_EXTRA2 指定生成fip文件的TOS Extra2镜像路径
DISABLE_BIN_GENERATION 禁止生成二进制镜像,默认为0。如果为1,则默认只输出ELF格式镜像
EL3_PAYLOAD_BASE 指定EL3镜像的入口地址,跳过后面镜像读取加载流程
ENABLE_ASSERTIONS 设置编译时是否使能assert()。对于调试版本,此选项默认为1,对于发行版,此选项默认为0
ENABLE_LTO 用于在TF-A的GCC中启用链接时间优化(LTO)支持。当前仅AArch64支持此选项。默认值为0
ENABLE_BACKTRACE 设置编译版本是否支持backtrace dump功能
ENABLE_PIE 用于在TF-A的通用代码中启用位置无关可执行代码功能。当前仅BL2_AT_EL3,BL31和BL32(TSP)支持此选项。默认值为0。
ENABLE_STACK_PROTECTOR 用于在GCC中启用堆栈保护检查。允许值为all、strong、default、none
FWU_FIP_NAME 指定FWU FIP文件名称,默认为fwu_fip.bin
LDFLAGS 用户添加链接命令选项
PRELOADED_BL33_BASE 使用此选项可以引导预加载的BL33映像,而不是常规引导流程
PROGRAMMABLE_RESET_ADDRESS 1允许复位vector address可配置,0是固定。默认为0
RESET_TO_BL31 启用BL31入口点作为CPU复位向量,而不是BL1入口点。它可以取值为0(使用BL1入口地址)或1(使用BL31入口点)。默认值为0
SPD 指定ATF中编译的Secure Payload Dispatcher名称,此生成选项仅在ARCH=aarch64时有效。该值值应该是相对于services/spd /的包含SPD源的目录的路径,目录下需要包含一个同名的 .mk文件
SPIN_ON_BL1_EXIT 此选项在BL1中引入了无限循环。它可以取0(无循环)或1(添加循环)。默认值为0。该循环将在切换到BL31之前停止BL1中的执行。此时,所有固件映像均已加载到内存中,并且MMU和高速缓存已关闭。接入调试器进行调试
BUILD_BASE
构建的输出目录。默认为./build
FIP_NAME
指定FIP文件名称,默认为fip.bin
PLAT
指定编译ATF的平台配置,必须要plat/下的对应目录匹配,并包含一个platform.mk文件
ARCH
选择TF-A的目标构建体系结构。它可以采用 aarch64或aarch32作为值。默认情况下,它定义为 aarch64
DEBUG
选择编译调试版本还是发布版本,0发布版本,1调试版本。
BL32_EXTRA1 它为fip目标指定了Trusted OS Extra1镜像的路径。
BL32_EXTRA2 它为fip目标指定了Trusted OS Extra2镜像的路径。
BUILD_BASE
构建的输出目录。默认为./build
USE_COHERENT_MEM 该标志确定是否在BL存储器映射中包括一致性存储器区域(请参见“Use of Coherent memory in TF-A” section in Firmware Design)。 它可以取值为1(包括一致性存储器区域)或0(不包括一致性存储器区域)。 默认值为1。

2. 安全相关

编译选项 解释
TRUSTED_BOARD_BOOT
对Trusted Board Boot功能的支持。设置为“ 1”时,BL1和BL2映像支持加载和验证FIP中的证书和映像,而BL1包含对固件更新的支持。默认值为“ 0”。
ROT_KEY
当GENERATE_COT = 1时使用此选项。 它指定包含PEM格式的ROT私钥的文件,并强制生成公钥哈希。 如果SAVE_KEYS = 1,此文件名将用于保存密钥。
SAVE_KEYS 当GENERATE_COT = 1时使用此选项。 它告诉证书生成工具保存用于建立信任链的密钥。 允许的选项为“ 0”或“ 1”。 默认值为“ 0”(不保存)。
COT
如果使能Trusted Boot,选择意向Chain of Trust,默认为tbbr
CREATE_KEYS
当GENERATE_COT = 1时使用此选项。 它告诉证书生成工具在不存在或未指定有效密钥的情况下创建新密钥。 允许的选项为“ 0”或“ 1”。 默认值为“ 1”。
DYN_DISABLE_AUTH 提供在运行时动态禁用Trusted Board Boot身份验证的功能。 该选项仅适用于开发平台。 如果必须启用此标志,则必须设置TRUSTED_BOARD_BOOT标志。 默认值为0。
OPENSSL_DIR 此标志用于在主机上提供已安装的openssl目录路径,该路径用于构建证书生成和固件加密工具。
GENERATE_COT
布尔标志,用于根据Trusted Board Boot中所述的信任链来构建和执行cert_create工具以创建证书。 然后,构建系统调用fiptool将证书包括在FIP和FWU_FIP中。 默认值为“ 0”。
(1) TRUSTED_BOARD_BOOT = 1和GENERATE_COT = 1,以在BL1和BL2映像中包括对Trusted Board Boot功能的支持,生成相应的证书,并将这些证书包括在FIP和FWU_FIP中;
(2)如果TRUSTED_BOARD_BOOT = 0和GENERATE_COT = 1,则BL1和BL2映像将不包括对Trusted Board Boot的支持。 FIP仍将包括相应的证书。该FIP可用于通过其他机制来验证主机上的信任链;
(3)TRUSTED_BOARD_BOOT = 1和GENERATE_COT = 0,则BL1和BL2映像将包括对Trusted Board Boot的支持,但是FIP和FWU_FIP将不包括相应的证书,从而导致启动失败

2.1 签名

编译选项 解释
KEY_ALG 允此构建标志使用户可以选择用于生成PKCS密钥和证书的后续签名的算法,支
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇5分钟,带你创建一个智能电梯检测.. 下一篇AT24C02 by stm32f103 hal

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目