在嵌入式系統和智能設備領域,硬件級安全防護已成為產品核心競爭力。ARM TrustZone技術作為行業通用的硬件安全擴展方案,被廣泛應用于各類Cortex-A架構芯片。瑞芯微平臺的Trust固件正是基于這一技術構建的安全基石,承擔著電源管理、安全隔離、數據保護等關鍵職能。本文將從基礎原理、平臺實現到問題排查,全面解析瑞芯微Trust架構的核心知識。
一、ARM TrustZone技術基礎
TrustZone是ARM為Cortex-A系列處理器設計的系統級安全方案,從硬件層面將系統劃分為兩個完全隔離的執行環境,確保敏感數據和操作在安全環境中運行,免受非安全世界的攻擊。
1.1雙世界系統架構
整個系統被劃分為安全世界和非安全世界:
?安全世界:可訪問系統所有資源,運行敏感代碼和數據
?非安全世界:僅能訪問非安全資源,無法直接訪問安全世界的內存、外設和寄存器
?世界切換:通過ARM的SMC(Secure Monitor Call)硬件指令觸發,由Secure Monitor代碼完成身份切換,這一過程完全由硬件保證安全性
目前主流的開源實現包括ARM Trusted Firmware(ATF)和OP-TEE OS,二者可配合使用或單獨部署。
1.2 CPU特權等級
從CPU執行權限角度,不同架構有不同的特權模式劃分:
?64位CPU:分為EL0(用戶態)、EL1(內核態)、EL2(虛擬化)、EL3(安全監控)四個等級,每個等級又分為安全和非安全模式
?32位CPU:分為Mon、Hyp、SVC、IRQ等8種模式,同樣支持安全/非安全區分
瑞芯微Trust固件本質上是**EL3(安全監控層)+安全EL1(可信操作系統)**的功能集合。
二、瑞芯微平臺Trust實現詳解
2.1實現機制
瑞芯微針對不同架構平臺采用了差異化的實現方案:
?64位SoC平臺:ARM Trusted Firmware(BL31)+ OP-TEE OS(BL32)組合
?32位SoC平臺:僅使用OP-TEE OS
2.2完整啟動流程
ARM標準啟動流程分為BL1-BL33五個階段,瑞芯微平臺對其進行了適配,各階段對應關系如下:

關鍵說明:
?Maskrom和Loader由瑞芯微自研實現,對應標準BL1和BL2階段
?Trust固件包含BL31(ATF)和BL32(OP-TEE OS)兩部分
?從U-Boot開始,系統進入非安全世界運行
2.3固件獲取與打包
目前對外僅提供二進制固件文件,不開放完整源碼:
?內置位置:U-Boot工程的./tools/rk_tools/bin/目錄下,按芯片系列分文件夾存放
?自動打包:編譯對應平臺U-Boot時,會自動將二進制文件打包生成trust.img
?獨立獲取:可通過rkbin倉庫下載所有平臺的Trust二進制文件
2.4 DTS設備樹使能配置
Trust功能需要在內核設備樹中進行相應配置,不同內核版本和架構的配置方式略有差異:
|
內核版本 |
平臺架構 |
核心配置 |
|
3.10 |
32位 |
1.添加arm,psci兼容節點 |
|
3.10 |
64位 |
1.添加arm,psci-0.2兼容節點 |
|
4.4+ |
32位 |
添加arm,psci-1.0兼容節點 |
|
4.4+ |
64位 |
1.添加arm,psci-1.0兼容節點 |
2.5運行內存與生命周期
?ATF運行內存:DRAM起始地址0M~2M空間,入口地址為0x10000(64KB)
?OP-TEE OS運行內存:DRAM起始地址132M~148M空間,入口地址為0x08400000(132MB)
?生命周期:Trust固件自上電初始化后,將永久常駐內存,直至系統關機
2.6核心功能
1.PSCI電源管理:通過SMC指令實現CPU上下電、系統休眠、復位、關機等操作,統一了內核電源管理接口
2.Secure Monitor:實現安全世界與非安全世界的切換,是TrustZone技術的核心
3.安全IP配置:完成AMBA總線、加密模塊、安全存儲等硬件IP的安全屬性配置
4.安全數據保護:為支付、DRM、企業服務等場景提供敏感數據的存儲和運算保護
三、Trust問題排查實戰
由于Trust固件僅提供二進制文件,普通開發者無法直接調試,因此掌握日志分析方法至關重要。
3.1日志格式識別
Trust固件的打印信息有明確的格式特征:
?ARM Trusted Firmware(BL31):無時間戳,格式為INFO: 內容或NOTICE: 內容
?OP-TEE OS(BL32):無時間戳,格式為INF [0x0] TEE-CORE: 內容
3.2固件版本號提取
從開機日志中可快速提取版本信息:
?ATF版本號:NOTICE: BL31: v1.3(debug):4c793da→版本號為4c793da
?OP-TEE版本號:INF [0x0] TEE-CORE337: Initializing (1.1.0-127-g27532f4#54...)→版本號為27532f4(忽略前綴g)
3.3 PANIC信息識別
當Trust固件發生嚴重錯誤時,會輸出PANIC信息:
?ATF PANIC:以Unhandled Exception in EL3開頭,隨后輸出所有寄存器值
?OP-TEE PANIC:以core data-abort at address開頭,包含寄存器值和錯誤位置,最后輸出PANIC: 錯誤函數
四、知識體系腦圖

總結
Trust固件是瑞芯微平臺安全體系的核心,雖然源碼未完全開放,但掌握其架構原理、啟動流程和日志分析方法,能夠幫助開發者快速定位和解決相關問題。在實際開發中,遇到Trust相關問題時,應優先收集完整的開機日志和PANIC信息,這是問題定位的關鍵依據。
-
嵌入式系統
+關注
關注
41文章
3811瀏覽量
133827 -
固件
+關注
關注
11文章
572瀏覽量
25203 -
瑞芯微
+關注
關注
27文章
831瀏覽量
54632 -
trustzone
+關注
關注
0文章
23瀏覽量
13100
發布評論請先 登錄
瑞芯微RK平臺Android音頻?EQ/DRC調試全攻略
入門篇:瑞芯微?RK?平臺編譯工具鏈自動適配原理全解析
一文搞定RK平臺Wi-Fi/BT調試!從配置到問題解決全攻略
瑞芯微RKNPU開發全指南:從環境搭建到性能優化,一文搞定邊緣AI部署
RK平臺Linux IOMMU開發:從原理到實戰
RK平臺網絡問題排查指南:從初始化到吞吐量,一文搞定常見故障
AutoCore 聯合貝啟科技和瑞芯微,發布AutoRobo國產化機器人平臺,打通“原型到量產”最后一公里
深海連接器: 從原理到應用的全維度解析
負氧離子監測系統:從原理到應用的全維度突破
貝啟科技受邀參展瑞芯微2025年開發者大會,全面展示OpenHarmony瑞芯微最專業最全面的全棧方案
一文搞懂瑞芯微平臺Trust架構:從原理到問題排查全解析
評論