ARM Trusted Firmware分析——固件升級(FWU)


參考文檔:《Firmware Update (FWU)》。

 

ATF中關於FWU的實現沒有如下文檔描述完整,尤其是BL2U、NS_BL2U鏡像。

可取的是FWU SMC處理、對升級包證書驗簽鏡像驗簽流程

6.1 Introduction

FWU功能經過認證的固件從USB/SD/eMMC/NAND等外部設備獲取固件進行更新。FWU可以在系統固件損壞情況下,作為恢復模式使用。

6.2 FWU Overview

參考設計:

  • BL1處理:
    • 檢測和初始化FWU啟動流程。
    • 從非安全內存拷貝鏡像到安全內存。
    • FWU鏡像認證。
    • FWU過程中安全和非安全世界上下文切換。
  • 其他安全世界FWU鏡像處理FWU流程所需的平台初始化。
  • 非安全世界FWU鏡像從外部接口加載鏡像到非安全內存。

FWU特性需求主要包括:

  • 導出和其他EL執行的FWU鏡像交互的BL1 SMC接口。
  • 導出FWU代碼獲取信息所使用的通用平台接口,

 

6.3 Image Identification

每個FWU鏡像和證書都通過唯一的ID識別,BL1通過調用bl1_plat_get_image_desc()獲取鏡像描述符image_desc_t。此ID同樣用於准備CoT。

鏡像描述符包括以下信息:

  • 鏡像是否可執行。
  • 鏡像在安全還是非安全世界認證和執行。
  • 鏡像基地址和大小。
  • 鏡像啟動入口點配置。
  • FWU鏡像狀態。

 BL1使用FWU鏡像描述符:

  • 確認FWU SMC參數是否有效
  • 管理FWU啟動流程狀態
  • 初始化FWU鏡像執行環境

6.4 FWU State Machine

FWU安全鏡像在啟動過程中可能的狀態有:RESET、COPYING、COPIED、AUTHENTICATED、EXECUTED、INTERRUPTED。

FWU非安全驚險在啟動過程中可能的狀態有:RESET、AUTHENTICATED。

6.5 BL1 SMC接口

BL1_SMC_CALL_COUNT:獲取BL1支持的SMC指令個數。

BL1_SMC_UID:獲取BL1 SMC服務UUID。

BL1_SMC_VERSION:獲取BL1 SMC服務版本號。

BL1_SMC_RUN_IMAGE:將執行權交給指定的EL3鏡像開始執行。

FWU_SMC_IMAGE_COPY:將指定鏡像從非安全內存拷貝到安全內存,后續用於認證。

FWU_SMC_IMAGE_AUTH:認證指定鏡像。

FWU_SMC_IMAGE_EXECUTE:初始化認證過的鏡像執行環境。

FWU_SMC_IMAGE_RESUME:

FWU_SMC_SEC_IMAGE_DONE:提示之前安全鏡像執行完成。

FWU_SMC_UPDATE_DONE:完成固件更新流程。

FWU_SMC_IMAGE_RESET:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM