ARMv8 工作模式
ARMv8 沒有 Privilege level 的概念,取而代之的是 Exception level(異常級別),簡稱為EL,用于描述特權級別,一共有 4 個級別:EL0、EL1、EL2 和 EL3,數字越大,級別越高,權限越大!這四個 EL 級別對應的應用場合如下:
EL0:一般的應用程序 EL1:操作系統,比如 Linux EL2:虛擬化(Hypervisor),虛擬機管理器 EL3:最底層的安全固件,如 ARM Trusted Firmware(ATF/TF-A)
ARMv8 提供了兩種安全狀態:Secure 和 Non-secure,也就是安全和非安全,Non-secure 也就是正常世界(NormalWorld)。我們可以在 Non-secure 運行通用操作系統,比如 Linux,在 Secure 運行可信操作系統,比如OP-TEE,這兩個操作系統可以同時運行,這個需要處理器支持 ARM 的 TrustZone 功能。在 Normal world 和 Secure world下,ARMv8 個 EL 等級對應的內容如圖所示:
在 ARMv8 的 AArch32 模式下,處理器模式如圖所示:
在 AArch32 模式下,EL0~LE3 對應 ARMv7 的不同工作模式:
EL0:對應 ARMv7 的 User 工作模式
EL1:對應 ARMv7 的 SVC、ABT、IRQ、IRQ、UND 和 SYS 這 6 中工作模式
EL2:對應 ARMv7 的 Hyp 工作模式
EL3:對應 ARMv7 的 Mon 工作模式
可以看出,只有 EL3 是用于安全監視器的,所以 TF-A 主要工作在 EL3 下,在看 TF-A源碼的時候會看到大量的“EL3”字樣的文件或代碼。
-
嵌入式
+關注
關注
5092文章
19178瀏覽量
307696 -
Linux
+關注
關注
87文章
11345瀏覽量
210401 -
操作系統
+關注
關注
37文章
6896瀏覽量
123749 -
程序
+關注
關注
117文章
3795瀏覽量
81415
發布評論請先 登錄
相關推薦
ARMv8架構概述
ARMv8 Vector table問題該如何更好地去理解呢
NEON在armv8(arch64)下如何去使用呢
Armv7和Armv8系統中跟蹤的高級視圖詳解
如何使用CSAT調試Armv8平臺
ARM推新品:ARMv8首次支援64位元指令集
TRACE32支持ARMv8架構
從軟件開發的角度概述ARMv8處理器架構中的虛擬化操作
![從軟件開發的角度概述<b class='flag-5'>ARMv8</b>處理器架構中的虛擬化操作](https://file1.elecfans.com//web2/M00/A7/4E/wKgZomUMQ7eASY_-AAA5yuEy4x8718.png)
ARMv8處理器體系結構中的虛擬化功能
![<b class='flag-5'>ARMv8</b>處理器體系結構中的虛擬化功能](https://file.elecfans.com/web1/M00/BC/8F/pIYBAF67X9aAOD55AAFclM5G380955.png)
Armv8架構及虛擬化介紹
ARMv7-A工作模式介紹
![<b class='flag-5'>ARMv</b>7-A<b class='flag-5'>工作</b><b class='flag-5'>模式</b>介紹](https://file1.elecfans.com/web2/M00/A2/7E/wKgZomT-z7KAfdxVAAFLlstwioM241.jpg)
armv8 u-boot的啟動介紹
![<b class='flag-5'>armv8</b> u-boot的啟動介紹](https://file1.elecfans.com/web2/M00/B3/0C/wKgaomVxNu-AIvqcAAIPpgxwPoE779.jpg)
評論