restart--冷啟動
reset--熱啟動
ATF冷啟動實現分為5個步驟:
? BL1 - AP Trusted ROM,一般為BootRom。
? BL2 - Trusted Boot Firmware,一般為Trusted Bootloader。
? BL31 - EL3 Runtime Firmware,一般為SML,管理SMC執行處理和中斷,運行在secure monitor中。
? BL32 - Secure-EL1 Payload,一般為TEE OS Image。
? BL33 - Non-Trusted Firmware,一般為uboot、linux kernel。
ATF輸出BL1、BL2、BL31,提供BL32和BL33接口。
(我想提供的接口就是BL32和BL33的鏡像可以是指定的,atf其實是一個啟動框架,這其中包含的五個步驟,每個步驟你想要的內容,可以由廠商自己定義。)
啟動流程如下:
BL1位于ROM中,在EL3下從reset vector處開始運行。(bootrom就是芯片上電運行的(chip-rom的作用就是跳轉到bootrom))
BL1做的工作主要有:
? 決定啟動路徑:冷啟動還是熱啟動。
? 架構初始化:異常向量、CPU復位處理函數配置、控制寄存器設置(SCRLR_EL3/SCR_EL3/CPTR_EL3/DAIF)
? 平臺初始化:使能Trusted Watchdog、初始化控制臺、配置硬件一致性互聯、配置MMU、初始化相關存儲設備。
? 固件更新處理
? BL2鏡像加載和執行:
? BL1輸出“Booting Trusted Firmware“。
? BL1加載BL2到SRAM;如果SRAM不夠或者BL2鏡像錯誤,輸出“Failed to load BL2 firmware.”。
? BL1切換到Secure EL1并將執行權交給BL2.
1.2 BL2
BL2位于SRAM中,運行在Secure EL1主要工作有:
? 架構初始化:EL1/EL0使能浮點單元和ASMID。
? 平臺初始化:控制臺初始化、相關存儲設備初始化、MMU、相關設備安全配置、
? SCP_BL2:系統控制核鏡像加載,單獨核處理系統功耗、時鐘、復位等控制。
? 加載BL31鏡像:BL2將控制權交給BL1;BL1關閉MMU并關cache;BL1將控制權交給BL31。
? 加載BL32鏡像:BL32運行在安全世界,BL2依賴BL31將控制權交給BL32。SPSR通過Secure-EL1 PayloadDispatcher進行初始化。
? 加載BL33鏡像:BL2依賴BL31將控制權交給BL33。
1.3 BL31
BL31位于SRAM中,EL3模式。除了做架構初始化和平臺初始化外,還做了如下工作:
? PSCI服務初始化,后續提供CPU功耗管理操作。
? BL32鏡像運行初始化,處于Secure EL1模式。
? 初始化非安全EL2或EL1,跳轉到BL33執行。
? 負責安全非安全世界切換。
? 進行安全服務請求的分發。
-
接口
+關注
關注
33文章
8616瀏覽量
151311 -
ROM
+關注
關注
4文章
575瀏覽量
85807 -
冷啟動
+關注
關注
0文章
9瀏覽量
7515
發布評論請先 登錄
相關推薦
評論