1-Alternative Boot Flows
引流關鍵詞: 中斷、同步異常、異步異常、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學習
1.交替引導流程
1.1。EL3 有效負載替代引導流程
在預生產系統上,需要能夠在最高異常級別執行任意裸機代碼。它允許完全、直接地訪問硬件,例如運行硅浸泡測試。
盡管可以從頭開始實施一些裸機安全固件,但這在某些平臺上是一項復雜的任務,具體取決于將系統置于預期狀態所需的配置級別。
與其引導裸機應用程序,一種可能的折衷方案是 通過 TF-A 引導。這是作為替代引導流程實現的,其中修改后的 BL2 引導 EL3 有效負載,而不是加載其他 BL 映像并將控制權傳遞給 BL31。它通過以下方式降低了開發 EL3 裸機代碼的復雜性:EL3 payloads
-
將系統置于已知的架構狀態;
-
處理平臺安全世界初始化;
-
如果平臺需要,加載 SCP_BL2 圖像。
在 Arm 標準平臺上啟動 EL3 有效負載時,TrustZone 控制器的配置得到簡化,僅啟用區域 0 并配置為僅允許安全訪問。這樣就可以完全訪問 EL3 有效負載的整個 DRAM。
系統保持與在默認引導流程中進入 BL31 時相同的狀態。特別是:
-
運行在EL3;
-
當前狀態是 AArch64;
-
小端數據訪問;
-
禁用所有例外;
-
MMU 禁用;
-
緩存被禁用。
1.1.1。啟動 EL3 有效負載
EL3 有效負載圖像是一個獨立的圖像,不是 FIP 的一部分。它不是由 TF-A 加載的。因此,有兩種可能的情況:
-
EL3 有效負載可以駐留在非易失性存儲器 (NVM) 中并就地執行。在這種情況下,啟動它只需要EL3_PAYLOAD_BASE在構建 TF-A 時在 NVM 中指定正確的地址即可。
-
EL3 有效負載需要在運行時加載到易失性存儲器(例如 DRAM)中。
為了在后一種情況下提供幫助,SPIN_ON_BL1_EXIT=1可以使用構建選項。它在 BL1 中引入的無限循環在適當的時刻停止執行,以便調試器控制目標并加載有效負載(例如,通過 JTAG)。
預計這種加載方法在大多數情況下都可以工作,因為調試器連接通常在預生產系統中可用。不過,用戶可以自由使用任何其他特定于平臺的機制來加載 EL3 有效負載。
1.2. 預加載的 BL33 替代引導流程
一些平臺能夠將 BL33 預加載到內存中,而不是依賴 TF-A 來加載它。這可以簡化普通世界代碼的打包并提高開發環境中的性能。安全世界冷啟動完成后,TF-A 只需跳轉到構建時提供的 BL33 基地址。
要使用此選項,PRELOADED_BL33_BASE編譯 TF-A 時必須使用 build 選項。例如,以下命令將創建一個沒有 BL33 的 FIP,并準備跳轉到地址 0x80000000 加載的 BL33 圖像:
make PRELOADED_BL33_BASE=0x80000000 PLAT=fvp all fip總結
以上是生活随笔為你收集整理的1-Alternative Boot Flows的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20-Granule Protectio
- 下一篇: 2-Authentication Fra