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”字樣的文件或代碼。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
本文從ARMv8-A產生的背景開始,對它進行一個簡單的介紹,使大家從整體上,對ARMv8有一個簡單的了解。
發表于 10-08 17:02
?1.1w次閱讀
隨著開發工作逐漸遷移到 ARMv8 的 64 位平臺,因此有必要盡快熟悉 ARMv8 架構。ARMv8 與先前較為熟悉的
發表于 03-21 14:50
Armv8 OverviewARMv7與Armv8的升級示意如下:Aarch64指令集Aarch64的32個通用寄存器引用和描述如下,與Aarch32寄存器相比如下,在ARM 32位系統中,函數參數
發表于 05-13 10:31
目前正在學習ARMv8 Arch Ref Manual.D1.10.2 Exception vectors有點疑惑:Table D1-6 定義了一個Vector Table應該具有的items我們
發表于 08-17 15:54
我在armv8下(arch64)下使用neon中遇到一些疑問,希望得到大家解答1、在armv8下是編譯的時候使用了O3優化,相關計算就會自動使用neon嗎2、同樣一段計算函數,計算速度是不是NEON
發表于 09-08 11:34
本指南主要介紹Armv7系統和Armv8系統中跟蹤的高級視圖,最高可達Armv8.4版本。
該指南涵蓋:
?跟蹤是什么以及如何使用
?跟蹤體系結構是如何定義的,以及它如何映射到不同的跟蹤組件實現
?在Arm系統中可以看到哪些跟蹤
發表于 08-02 06:11
本教程概述了如何使用CoreSight Access Tool執行低級調試(CSAT)與Armv8目標。低級調試允許您:
?操作單個寄存器,包括不能正常訪問的調試寄存器
應用程序級調試器。
?執行
發表于 08-02 10:27
處理器授權大廠ARM于上周(10/27)公布最新處理器規格ARMv8架構,一舉將其產品線推入64位元市場。ARMv8以ARMv7架構為基礎,并內含64位元指令集,預估可將32/64位元應用優勢極大化。
發表于 11-01 09:32
?1492次閱讀
ARMv8架構是首個包括64位執行模式的ARM架構,允許處理器將64位執行模式與32位執行模式相結合。開發該版本ARM指令系統的關鍵技術之一是將ARM處理器工藝的高能效優勢融入64
發表于 09-12 19:01
?11次下載
ARMv8處理器CPU 基于ARMv8的系統中的虛擬化工具在這些系統中起著特殊的作用,它由幾個組件組成,雖然ARMv7具有特殊的CPU模式來
發表于 10-13 20:00
?846次閱讀
基于ARMv8的系統中的虛擬化設施在這些系統中扮演著特殊角色,并且由幾個組件組成。盡管ARMv7具有特殊的CPU模式來運行虛擬機監控程序作為擴展,但在
發表于 05-13 10:48
?2072次閱讀
ARMv8基本概念
(1)執行狀態(execution state):處理器運行時的環境,包括寄存器的位寬、支持的指令集、異常模型、內存管理及編程模型等。ARMv8體系結構定義了兩個執行狀態:
AArch64:64位的執行狀態
提供31個64位的通用寄存
發表于 04-16 10:45
?6484次閱讀
TF-A 一開始是為 ARMv8 準備的,ARMv8 最突出的特點就是支持 64 位指令,但是為了兼容原來的 ARMv7,ARMv8提供了兩種指令集:AAarch64 和 AArch3
發表于 09-11 16:31
?989次閱讀
,接著驗簽啟動BL2,BL2根據具體設計啟動BL31或者BL33,BL32只有在有BL31時才可能會存在并被驗簽加載啟動。 armv8分為Secure World和Non-Secure World
發表于 12-07 11:09
?2217次閱讀
u-boot armv8鏈接腳本 在進行源碼分析之前,首先看看u-boot的鏈接腳本,通過鏈接腳本可以從整體了解一個u-boot的組成,并且可以在啟動分析中知道某些邏輯是在完成什么工作。 在
發表于 12-07 11:19
?685次閱讀
評論