restart--冷啟動(dòng)
reset--熱啟動(dòng)
ATF冷啟動(dòng)實(shí)現(xiàn)分為5個(gè)步驟:
? BL1 - AP Trusted ROM,一般為BootRom。
? BL2 - Trusted Boot Firmware,一般為Trusted Bootloader。
? BL31 - EL3 Runtime Firmware,一般為SML,管理SMC執(zhí)行處理和中斷,運(yùn)行在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其實(shí)是一個(gè)啟動(dòng)框架,這其中包含的五個(gè)步驟,每個(gè)步驟你想要的內(nèi)容,可以由廠商自己定義。)
啟動(dòng)流程如下:
BL1位于ROM中,在EL3下從reset vector處開始運(yùn)行。(bootrom就是芯片上電運(yùn)行的(chip-rom的作用就是跳轉(zhuǎn)到bootrom))
BL1做的工作主要有:
? 決定啟動(dòng)路徑:冷啟動(dòng)還是熱啟動(dòng)。
? 架構(gòu)初始化:異常向量、CPU復(fù)位處理函數(shù)配置、控制寄存器設(shè)置(SCRLR_EL3/SCR_EL3/CPTR_EL3/DAIF)
? 平臺(tái)初始化:使能Trusted Watchdog、初始化控制臺(tái)、配置硬件一致性互聯(lián)、配置MMU、初始化相關(guān)存儲(chǔ)設(shè)備。
? 固件更新處理
? BL2鏡像加載和執(zhí)行:
? BL1輸出“Booting Trusted Firmware“。
? BL1加載BL2到SRAM;如果SRAM不夠或者BL2鏡像錯(cuò)誤,輸出“Failed to load BL2 firmware.”。
? BL1切換到Secure EL1并將執(zhí)行權(quán)交給BL2.
1.2 BL2
BL2位于SRAM中,運(yùn)行在Secure EL1主要工作有:
? 架構(gòu)初始化:EL1/EL0使能浮點(diǎn)單元和ASMID。
? 平臺(tái)初始化:控制臺(tái)初始化、相關(guān)存儲(chǔ)設(shè)備初始化、MMU、相關(guān)設(shè)備安全配置、
? SCP_BL2:系統(tǒng)控制核鏡像加載,單獨(dú)核處理系統(tǒng)功耗、時(shí)鐘、復(fù)位等控制。
? 加載BL31鏡像:BL2將控制權(quán)交給BL1;BL1關(guān)閉MMU并關(guān)cache;BL1將控制權(quán)交給BL31。
? 加載BL32鏡像:BL32運(yùn)行在安全世界,BL2依賴BL31將控制權(quán)交給BL32。SPSR通過Secure-EL1 PayloadDispatcher進(jìn)行初始化。
? 加載BL33鏡像:BL2依賴BL31將控制權(quán)交給BL33。
1.3 BL31
BL31位于SRAM中,EL3模式。除了做架構(gòu)初始化和平臺(tái)初始化外,還做了如下工作:
? PSCI服務(wù)初始化,后續(xù)提供CPU功耗管理操作。
? BL32鏡像運(yùn)行初始化,處于Secure EL1模式。
? 初始化非安全EL2或EL1,跳轉(zhuǎn)到BL33執(zhí)行。
? 負(fù)責(zé)安全非安全世界切換。
? 進(jìn)行安全服務(wù)請(qǐng)求的分發(fā)。
-
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151015 -
ROM
+關(guān)注
關(guān)注
4文章
563瀏覽量
85731 -
冷啟動(dòng)
+關(guān)注
關(guān)注
0文章
9瀏覽量
7499
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論