TF-A 一開始是為 ARMv8 準(zhǔn)備的,ARMv8 最突出的特點(diǎn)就是支持 64 位指令,但是為了兼容原來的 ARMv7,ARMv8提供了兩種指令集:AAarch64 和 AArch32,根據(jù)字面意思就是 64 位和 32 位,其中 AArch32 和 ARMv7基本一樣(會(huì)多一些其他操作指令)。
安全不能僅僅依靠軟件來實(shí)現(xiàn),也是需要硬件支持的,比如 ARM處理器就有不同的運(yùn)行等級,運(yùn)行在低等級(非安全模式)的應(yīng)用就不能訪問高等級(安全模式)的資源,以此來保證敏感資源的安全性。
ARMv7-A 工作模式
以前的 ARMv7 處理器有 7 中運(yùn)行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef 和 System。新的ARMv7-A 架構(gòu)加入了 TrustZone安全擴(kuò)展,所以就新加了一種運(yùn)行模式:Monitor,新的處理器架構(gòu)還支持虛擬化擴(kuò)展,因此又加入了另一個(gè)運(yùn)行模式:Hyp,所以 Cortex-A7 處理器有 9種處理模式,如表所示:
不同的處理器模式下,CPU 對于硬件的訪問權(quán)限不同,叫做 PrivilegeLevel(特權(quán)等級),一共有兩個(gè)特權(quán)級別:Privilege(特權(quán)級)和 non-privilege(非特權(quán)級)。其中只有User 模式處于non-privilege,也就是非特權(quán)級,剩下的 8 個(gè)模式都是 privilege(特權(quán)級)。
系統(tǒng)啟動(dòng)以后應(yīng)用軟件都是運(yùn)行在 User模式,也就是非特權(quán)級,這個(gè)時(shí)候處理器對于敏感資源的訪問是受限的,如果要訪問這些敏感資源就需要切換到對應(yīng)的工作模式下。
ARMv7-A 對 Privilege Level 進(jìn)行了命名:PL0 和 PL1,后來也出現(xiàn)了 PL2,用于虛擬擴(kuò)展。ARMv7-A 新增的Monitor 模式就是針對安全擴(kuò)展的,為了支持 TEE 而引入的。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
armv7-A架構(gòu)中每個(gè)CPU核心都包含自己的私有定時(shí)器,所有cpu的定時(shí)器共享一個(gè)System counter, System counter負(fù)責(zé)產(chǎn)生計(jì)數(shù),傳遞到每個(gè)核心的私有定時(shí)器
發(fā)表于 09-27 15:10
?2603次閱讀
,如果更換其他ARMv7-A實(shí)現(xiàn)的內(nèi)核(如Cortex A8),如何確定該實(shí)現(xiàn)是否支持?第一次提問,如果表述不清楚請見諒!謝謝!
發(fā)表于 07-01 16:33
Cortex-A32產(chǎn)品介紹ARMv8-A AArch32主要特性ARMv7-M與AArch32的不同之處軟件從ARMv7-M移植到
發(fā)表于 02-19 06:20
。MMU 主要功能之一是虛擬地址到物理地址的轉(zhuǎn)換,這個(gè)需要軟件和硬件配合完成,軟件需要針對不同的硬件進(jìn)行策略。這里主要分析 ARMv7-A 體系架構(gòu)下的 MMU 的基本原理。VMSA 是針對
發(fā)表于 05-24 16:54
本周解決了兩個(gè)在 Armv7-A 系列芯片上出現(xiàn)的錯(cuò)誤,包括一個(gè)由于軟浮點(diǎn)配置導(dǎo)致的未定義指令錯(cuò)誤以及一個(gè)由于數(shù)據(jù)未對齊導(dǎo)致的 data abort 錯(cuò)誤,通過解決這兩個(gè)問題,學(xué)會(huì)了如何在 A 系列
發(fā)表于 06-13 17:42
:細(xì)化的trap從Armv7-A開始引入虛擬化以來,arm持續(xù)改進(jìn)虛擬化的支持。一個(gè)虛擬化關(guān)鍵的支持是trap虛擬機(jī)執(zhí)行的一些操作。目的是為了虛擬化這些操作或是讓hypervisor充當(dāng)Guest
發(fā)表于 07-29 15:29
運(yùn)算的指令。更多有關(guān)arm BF16支持的信息可以在這個(gè)神經(jīng)網(wǎng)絡(luò)的帖子找到。虛擬化和系統(tǒng)管理相關(guān)的增強(qiáng)虛擬化:細(xì)化的trap從Armv7-A開始引入虛擬化以來,arm持續(xù)改進(jìn)虛擬化的支持。一個(gè)虛擬化關(guān)鍵
發(fā)表于 08-08 14:16
1. 本指南介紹Armv8-A和Armv9-A的內(nèi)存屬性和屬性。它首先解釋內(nèi)存的屬性來自何處,如何分配到內(nèi)存區(qū)域,然后介紹現(xiàn)有的不同屬性,并解釋內(nèi)存順序的基本特性。這一信息對開發(fā)低級別
發(fā)表于 08-02 09:03
Cortex-A5 FPU是ARMv7浮點(diǎn)架構(gòu)的VFPv4-D16實(shí)現(xiàn)。它提供了低成本的高性能浮點(diǎn)計(jì)算。
FPU支持ARM?體系結(jié)構(gòu)參考手冊、ARMv7-A和ARMv7-R版本中描述的
發(fā)表于 08-02 08:05
提前(AOT)編譯的特定支持。
·決定處理器如何運(yùn)行的模式和狀態(tài),包括當(dāng)前的執(zhí)行特權(quán)和安全性。
·例外模式。
·內(nèi)存模型,定義內(nèi)存排序和內(nèi)存管理:
-ARMv7-A架構(gòu)配置文件定義虛擬內(nèi)存系統(tǒng)架構(gòu)
發(fā)表于 08-12 07:46
。
有關(guān)ARMv7-A架構(gòu)的一般介紹,請參閱ARM?Cortex?-A系列程序員指南。
本指南還可以幫助您熟悉本卷中討論的一些概念。
然而,ARMv8-A架構(gòu)配置文件向后兼容早期版本,
發(fā)表于 08-22 07:22
5。
本應(yīng)用筆記還假設(shè)您具有ARMv5的軟件開發(fā)經(jīng)驗(yàn)。
假設(shè)主目標(biāo)平臺是圍繞ARMv7-A處理器構(gòu)建的。
由于ARMv7-A和ARMv7-R有許多重疊的區(qū)域,本文檔的一部分也適用于
發(fā)表于 08-29 06:51
ARM? Architecture Reference Manual ARMv7-A and ARMv7-R edition
發(fā)表于 09-28 08:00
?27次下載
ARMv8 工作模式 ARMv8 沒有 Privilege level 的概念,取而代之的是 Exception level(異常級別),簡稱為EL,用于描述特權(quán)級別,一共有 4 個(gè)級
發(fā)表于 09-11 16:34
?1464次閱讀
對于現(xiàn)代操作系統(tǒng),通常情況下用戶的應(yīng)用程序運(yùn)行在用戶態(tài),操作系統(tǒng)內(nèi)核運(yùn)行在內(nèi)核態(tài)。用戶態(tài)的應(yīng)用對于系統(tǒng)硬件資源的訪問是受限的,內(nèi)核態(tài)則能夠訪問所有的系統(tǒng)硬件資源。操作系統(tǒng)的用戶態(tài)和內(nèi)核態(tài)是根據(jù)處理器的特權(quán)等級和運(yùn)行模式進(jìn)行硬件隔離的,這也極大的提高了操作系統(tǒng)的安全性。
發(fā)表于 10-21 16:19
?1043次閱讀
評論