為了增強(qiáng)arm架構(gòu)的安全性,aarch64一共實(shí)現(xiàn)了secure和non-secure兩種安全狀態(tài)。通過一系列硬件擴(kuò)展,在cpu執(zhí)行狀態(tài)、總線、內(nèi)存、外設(shè)、中斷、tlb、cache等方面都實(shí)現(xiàn)了兩種狀態(tài)之間的隔離。
在這種機(jī)制下,secure空間的程序可以訪問所有secure和non-secure的資源,而non-secure空間的程序只能訪問non-secure資源,卻不能訪問secure資源。從而可以將一些安全關(guān)鍵的資源放到secure空間,以增強(qiáng)其安全性。
為此aarch64實(shí)現(xiàn)了4個異常等級,其中EL3工作在secure空間,而EL0 – EL2既可以工作于secure空間,又可以工作于non-secure空間。不同異常等級及不同secure狀態(tài)的模式下可運(yùn)行不同類型軟件。
如secure EL1和El0用于運(yùn)行trust os內(nèi)核及其用戶態(tài)程序,non-secure EL1和El0用于運(yùn)行普通操作系統(tǒng)內(nèi)核(如linux)及其用戶態(tài)程序,EL2用于運(yùn)行虛擬機(jī)的hypervisor。
而EL3運(yùn)行secure monitor程序(通常為bl31),其功能為執(zhí)行secure和non
secure狀態(tài)切換、消息轉(zhuǎn)發(fā)以及提供類似psci等secure空間服務(wù)。
以下為其示意圖:
psci是工作于non secure EL1(linux內(nèi)核)和EL3(bl31)之間的一組電源管理接口,其目的是讓linux實(shí)現(xiàn)具體的電源管理策略,而由bl31管理底層硬件相關(guān)的操作。從而將cpu電源控制這種影響系統(tǒng)安全的控制權(quán)限放到安全等級更高的層級中,從而提升系統(tǒng)的整體安全性。
那么psci如何從EL1調(diào)用EL3的服務(wù)呢?其實(shí)它和系統(tǒng)調(diào)用是類似的,只是系統(tǒng)調(diào)用是用戶態(tài)程序陷入操作系統(tǒng)內(nèi)核,而psci是從操作系統(tǒng)內(nèi)核陷入secure monitor。armv8提供了一條smc異常指令,內(nèi)核只需要提供合適的參數(shù)后,觸發(fā)該指令即可通過異常的方式進(jìn)入secure monitor。
-
電源
+關(guān)注
關(guān)注
184文章
17849瀏覽量
251982 -
ARM
+關(guān)注
關(guān)注
134文章
9180瀏覽量
369439 -
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213144 -
SMP
+關(guān)注
關(guān)注
0文章
76瀏覽量
19758
發(fā)布評論請先 登錄
相關(guān)推薦
ARM重新定義ARMv8新架構(gòu),ARMv8新架構(gòu)特性解說
![ARM重新定義<b class='flag-5'>ARMv8</b>新架構(gòu),<b class='flag-5'>ARMv8</b>新架構(gòu)特性解說](https://file.elecfans.com/web1/M00/C9/06/pIYBAF9wVpqAXfs8AACfqjFoXeM382.png)
ARMv8架構(gòu)資料分享
ARMv8架構(gòu)概述
Armv7和Armv8系統(tǒng)中跟蹤的高級視圖詳解
ARMv8-A TrustZone軟件對實(shí)施SVE的系統(tǒng)的影響
ARM推新品:ARMv8首次支援64位元指令集
64位ARMv8架構(gòu)交易敲定 ARM助力Cavium進(jìn)軍新領(lǐng)域
TRACE32支持ARMv8架構(gòu)
從軟件開發(fā)的角度概述ARMv8處理器架構(gòu)中的虛擬化操作
![從軟件開發(fā)的角度概述<b class='flag-5'>ARMv8</b>處理器架構(gòu)中的虛擬化操作](https://file1.elecfans.com//web2/M00/A7/4E/wKgZomUMQ7eASY_-AAA5yuEy4x8718.png)
ARMv8處理器體系結(jié)構(gòu)中的虛擬化功能
![<b class='flag-5'>ARMv8</b>處理器體系結(jié)構(gòu)中的虛擬化功能](https://file.elecfans.com/web1/M00/BC/8F/pIYBAF67X9aAOD55AAFclM5G380955.png)
Armv8架構(gòu)及虛擬化介紹
rk3588是armv8嗎?rk3588硬件資料
ARMv8工作模式有哪些
![<b class='flag-5'>ARMv8</b>工作模式有哪些](https://file1.elecfans.com/web2/M00/A2/7F/wKgZomT-0EqAL7JbAAG-d1XnjV4331.jpg)
armv8 u-boot的啟動介紹
![<b class='flag-5'>armv8</b> u-boot的<b class='flag-5'>啟動</b>介紹](https://file1.elecfans.com/web2/M00/B3/0C/wKgaomVxNu-AIvqcAAIPpgxwPoE779.jpg)
評論