zoukankan      html  css  js  c++  java
  • ARM Trusted Firmware分析——编译选项

    参考文档:《Build Options

    1. 通用部分

    BL2/BL31/BL31:指定生成fip文件的BL2/BL31/BL32镜像路径,指定后则不需要编译BL2镜像。

    BL2_AT_EL3:使能后BL2镜像会运行在EL3异常等级。

    BL2_IN_XIP_MEM:使能后BL2会运行在XIP存储设备上。只需要在RAM上初始化读写段,RO代码段不需要拷贝。

    BL32_EXTRA1/BL32_EXTRA2:生成fip的TOS Extra1/Extra2镜像路径。

    DISABLE_BIN_GENERATION:禁止生成二进制镜像,默认为0。如果为1,则默认只输出ELF格式镜像。

    EL3_PAYLOAD_BASE:指定EL3镜像的入口地址,跳过后面镜像读取加载流程。

    ENABLE_ASSERTIONS:配置编译时是否使能assert()。1表示将assert()编译在版本内;0表示关闭assert()。

    ENABLE_BACKTRACE:配置编译版本是否支持backtrace dump功能。

    ENABLE_LTO:仅在AARch64平台可用,配置是否支持链接时优化(Link Time Optimization)功能。

    ENABLE_PIE:配置是否使能位置无关可执行代码功能,默认为0。仅支持BL2_AT_EL3、BL31、BL32。

    ENABLE_STACK_PROTECTOR:配置GCC stack protection选项,允许值为all、strong、default、none

    FIP_NAME:指定FIP文件名称,默认为fip.bin

    FWU_FIP_NAME:指定FWU FIP文件名称,默认为fwu_fip.bin。

    LDFLAGS:用户添加链接命令选项。

    PLAT:指定编译ATF的平台配置,必须要plat/下的对应目录匹配,并包含一个platform.mk文件。

    PRELOADED_BL33_BASE:从预加载的BL33镜像启动,入口地址由此配置指定。

    PROGRAMMABLE_RESET_ADDRESS:1允许复位vector address可配置,0是固定。默认为0。

    RESET_TO_BL31:使用BL31作为复位vector,而不是使用BL1入口。0使用BL1入口地址,1使用BL31入口地址。默认为0。

    SPD:指定ATF中编译的Secure Payload Dispatcher名称,跟services/spd下目录一致。目录下需要包含一个同名的<spd-value>.mk文件。

    SPIN_ON_BL1_EXIT:1表示BL1退出时进入无限循环,0表示不使用无限循环。使用1可以在镜像加载完成、MMU和Cache都关闭的时候,接入调试器进行调试。

    2. 安全相关

    ROT_KEY:指定包含ROT PEM格式私钥的文件并且强制生成公钥hash。

    SAVE_KEYS:告诉证书生成工具将秘钥保存到指定文件。

    GENERATE_COT:决定是否编译并执行TBB中对每个COT生成认证信息的工具cert_create。默认为0。

    • TRUSTED_BOARD_BOOT=1且GENERATE_COT=1:
    • TRUSTED_BOARD_BOOT=0且GENERATE_COT=1:
    • TRUSTED_BOARD_BOOT=1且GENERATE_COT=0:

    COT:如果使能Trusted Boot,选择意向Chain of Trust,默认为tbbr。

    CREATE_KEYS:在GENERATE_COT=1时,告诉证书生成工具生成新key,以免遇到未指定或无效key的情况。可选0或1,默认为1。

    DYN_DISABLE_AUTH:具备在运行时关闭TBB镜像验证功能,仅在开发阶段有意义。

    OPENSSL_DIR:提供用来做镜像签名和加密工具的openssl安装目录。

    2.1 签名

    通过KEY_ALGKEY_SIZE选择签名算法和秘钥位宽,哈希算法由HASH_ALG指定。

    KEY_ALG:允许用于选择生成PKCS秘钥以及签名所使用的算法,支持选项有rsa、rsa_1_5、ecdsa。默认为rsa,兼容TBBR的PKCS#1 RSA2.1。

    KEY_SIZE:允许用户选择KEY_ALG指定算法的秘钥大小。

    KEY_ALG

    Possible key sizes

    rsa

    1024, 2048(default), 3072, 4096

    ecdsa

    unavailable

    BL31_KEY/BL32_KEY/BL33_KEY:在GENERATE_COT=1使能后,指定BL31/BL32/BL33 PEM格式私钥文件。如果指定SAVE_KEYS=1,则用于保存key。

    NON_TRUSTED_WORLD_KEY:在GENERATE_COT=1时生效,指定Non-Trusted World PEM格式私钥文件。

    TRUSTED_WORLD_KEY:在GENERATE_COT=1时生效,指定Trusted World PEM格式私钥文件。

    2.2 加密相关

    通过DECRYPTION_SUPPORT选择加密算法,以及ENC_KEY选择秘钥,ENCRYPT_BL31/ENCRYPT_BL32选择加密镜像。

    DECRYPTION_SUPPORT:允许用户使用经过验证的解密算法来对启动过程中的镜像解密。两种选项aes_gcm或none。none表示关闭解密功能。是否支持其他aes模式扩展,取得性能和安全平衡?

    ENC_KEY:一个32字节(256位)的对称秘钥,可以是SSK或BSSK方式。

    ENC_NONCE:一个12字节(96位)的nonce或IV秘钥。nonce是一个只被使用一次的任意或非重复的随机数值。

    ENCRYPT_BL31/ENCRYPT_BL32:在DECRYPTION_SUPPORT打开后,表示是否对BL31/BL32镜像进行加密。

    FW_ENC_STATUS:指定镜像加密秘钥管理方式。0,一类设备使用相同的SSK(Secrete Symmetric Key);1,每个设备使用独有的BSSK(Binding Secret Symmetric Key)。

    2.3 哈希

    HASH_ALG:选择hash算法选项,可选sha256、sha384、sha512。默认为sha256。

    2.4 中断

    EL3_EXCEPTION_HANDLING:设置为1时,异常处理将由EL3进行处理;设置为0时,EL3将不会进行异常处理,结果是进行panic。

    SEC_INT_DESC_IN_FCONF:用于决定是否使用关键配置框架配置Group 0和Group 1位安全中断。

    GICV2_G0_FOR_EL3:不同于GICv3,GICv2没有EL3专用中断。将GICV2_G0_FOR_EL3置为1,则表示期望GICv2 Group 0中断发送到EL3。这意味着所有GICv2 Group 0中断被送到EL3,并且Secure Payload中断需要被同步送到S.EL1处理。默认值为0,表示Group 0中断默认被S.EL1处理。

    HANDLE_EA_EL3_FIRST:置为1,则外部异常和SError中断会被EL3捕获。置为0,异常则会陷入当前EL(如果当前EL是EL0,则会陷入EL1。)

    SP_MIN_WITH_SECURE_FIQ:

    TSP_NS_INTR_ASYNC_PREEMPT:

    3. 调试

    编译调试版本:

    make PLAT=<platform> DEBUG=1 V=1 all

    DEBUG:选择编译调试版本还是发布版本,0发布版本,1调试版本。

    ARM GCC默认使用DWARF 4调试符号。某些工具可能不支持,可以通过-gdwarf-<version>来指定DWARF版本,比如为2或3。

    某些时候甚至需要关闭编译优化来定位问题,使用-O0。

    CFLAGS='-O0 -gdwarf-2'                                     
    make PLAT=<platform> DEBUG=1 V=1 all
    联系方式:arnoldlu@qq.com
  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/arnoldlu/p/14299631.html
Copyright © 2011-2022 走看看