9-Building FIP images with support for Trusted Board Boot
引流關鍵詞: 中斷、同步異常、異步異常、irq、fiq、BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33,SCP_BL1,SCP_BL2,BL0,BL30, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、內存管理、頁表…
快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈
[專欄目錄]-ATF/FF-A/specification學習
9.構建支持 Trusted Board Boot 的 FIP 映像?
Trusted Board Boot 主要包含以下兩個功能:
-
鏡像身份驗證,在Trusted Board Boot中描述,以及
-
固件更新,在固件更新 (FWU)中描述
應遵循以下步驟來構建支持這些功能的 FIP 和(可選)FWU_FIP 映像:
(1)mbedtls通過檢查mbed TLS 存儲庫的最新版本來滿足加密和圖像解析器模塊的依賴關系。使用與 TF-A 兼容并修復任何已知安全漏洞的版本非常重要。有關詳細信息,請參閱mbed TLS 安全中心。有關要使用的 mbed TLS 的適當版本,請參閱先決條件文檔。
這些drivers/auth/mbedtls/mbedtls_*.mk文件包含模塊所依賴的 mbed TLS 源文件的列表。 include/drivers/auth/mbedtls/mbedtls_config.h包含構建 mbed TLS 源所需的配置選項。
請注意,mbed TLS 庫在 Apache 2.0 版許可下獲得許可。使用 mbed TLS 源代碼將影響使用此庫構建的 TF-A 二進制文件的許可。
(2)make要構建 FIP 映像,請確保在調用構建 TF-A時設置以下命令行變量:
-
MBEDTLS_DIR=
-
TRUSTED_BOARD_BOOT=1
-
GENERATE_COT=1
默認情況下,這將使用 TBBR 客戶端文檔中描述的信任鏈。要選擇不同的,請使用COT構建選項。
對于 Arm 平臺,還必須在構建時指定 ROTPK 哈希的位置。當前支持以下位置(請參閱 ARM_ROTPK_LOCATION構建選項):
-
ARM_ROTPK_LOCATION=regs:ROTPK 哈希是從平臺中存在的可信根密鑰存儲寄存器中獲得的。在 Juno 上,這些寄存器是只讀的。在 FVP Base 和 Cortex 模型上,寄存器也是只讀的,但可以bp.trusted_key_storage.public_key在啟動模型時使用命令行選項指定值。在 Juno 板上,默認值對應于 ECDSA-SECP256R1 公鑰哈希,其私有部分當前不可用。
-
ARM_ROTPK_LOCATION=devel_rsa: 使用位于 plat/arm/board/common/rotpk/arm_rotpk_rsa_sha256.bin. ROT_KEY如果指定,則強制生成新哈希。
-
ARM_ROTPK_LOCATION=devel_ecdsa: 使用位于 plat/arm/board/common/rotpk/arm_rotpk_ecdsa_sha256.bin. ROT_KEY如果指定,則強制生成新哈希。
使用 RSA 開發密鑰的命令行示例:
MBEDTLS_DIR=<path of the directory containing mbed TLS sources> \ make PLAT=<platform> TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 \ ARM_ROTPK_LOCATION=devel_rsa \ ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \ BL33=<path-to>/<bl33_image> \ all fip此構建的結果將是 bl1.bin 和 fip.bin 二進制文件。此 FIP 將包括與所選信任鏈相對應的證書。這些證書也可以在輸出構建目錄中找到。
(3)可選的 FWU_FIP 包含要在固件更新 (FWU)過程中從非易失性存儲加載的任何其他圖像。要構建 FWU_FIP,必須在命令行中指定平臺所需的任何 FWU 映像。在 Juno 等 Arm 開發平臺上,這些是:
-
NS_BL2U。AP 非安全固件更新程序映像。
-
SCP_BL2U。SCP 固件更新配置映像。
使用 RSA 開發生成fwu和目標的 Juno 命令行示例:fwu_fip
MBEDTLS_DIR=<path of the directory containing mbed TLS sources> \ make PLAT=juno TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 \ ARM_ROTPK_LOCATION=devel_rsa \ ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \ BL33=<path-to>/<bl33_image> \ SCP_BL2=<path-to>/<scp_bl2_image> \ SCP_BL2U=<path-to>/<scp_bl2u_image> \ NS_BL2U=<path-to>/<ns_bl2u_image> \ all fip fwu_fip注意:BL2U 映像將默認構建并添加到 FWU_FIP。BL2U=/<bl2u_image> 用戶可以通過添加到上面的命令行來覆蓋它。
注意:構建和安裝非安全和 SCP FWU 映像(NS_BL1U、NS_BL2U 和 SCP_BL2U)超出了本文檔的范圍。
此構建的結果將是 bl1.bin、fip.bin 和 fwu_fip.bin 二進制文件。FIP 和 FWU_FIP 都將包含與所選信任鏈相對應的證書。這些證書也可以在輸出構建目錄中找到。
總結
以上是生活随笔為你收集整理的9-Building FIP images with support for Trusted Board Boot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8-Trusted Board Boot
- 下一篇: [HOW TO]-ubuntu20.10