為了增強arm架構的安全性,aarch64一共實現了secure和non-secure兩種安全狀態。通過一系列硬件擴展,在cpu執行狀態、總線、內存、外設、中斷、tlb、cache等方面都實現了兩種狀態之間的隔離。
在這種機制下,secure空間的程序可以訪問所有secure和non-secure的資源,而non-secure空間的程序只能訪問non-secure資源,卻不能訪問secure資源。從而可以將一些安全關鍵的資源放到secure空間,以增強其安全性。
為此aarch64實現了4個異常等級,其中EL3工作在secure空間,而EL0 – EL2既可以工作于secure空間,又可以工作于non-secure空間。不同異常等級及不同secure狀態的模式下可運行不同類型軟件。
如secure EL1和El0用于運行trust os內核及其用戶態程序,non-secure EL1和El0用于運行普通操作系統內核(如linux)及其用戶態程序,EL2用于運行虛擬機的hypervisor。
而EL3運行secure monitor程序(通常為bl31),其功能為執行secure和non
secure狀態切換、消息轉發以及提供類似psci等secure空間服務。
以下為其示意圖:
psci是工作于non secure EL1(linux內核)和EL3(bl31)之間的一組電源管理接口,其目的是讓linux實現具體的電源管理策略,而由bl31管理底層硬件相關的操作。從而將cpu電源控制這種影響系統安全的控制權限放到安全等級更高的層級中,從而提升系統的整體安全性。
那么psci如何從EL1調用EL3的服務呢?其實它和系統調用是類似的,只是系統調用是用戶態程序陷入操作系統內核,而psci是從操作系統內核陷入secure monitor。armv8提供了一條smc異常指令,內核只需要提供合適的參數后,觸發該指令即可通過異常的方式進入secure monitor。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
本文從ARMv8-A產生的背景開始,對它進行一個簡單的介紹,使大家從整體上,對ARMv8有一個簡單的了解。
發表于 10-08 17:02
?1.1w次閱讀
) · Memory Ordering · 安全系統(例如普通世界和安全世界的切換) 本篇就依據上面的關鍵點對 ARMv8 架構進行一番探索。 ARMv8-A 架構基礎
發表于 03-21 14:50
Armv8 OverviewARMv7與Armv8的升級示意如下:Aarch64指令集Aarch64的32個通用寄存器引用和描述如下,與Aarch32寄存器相比如下,在ARM 32位系統中,函數參數
發表于 05-13 10:31
本指南主要介紹Armv7系統和Armv8系統中跟蹤的高級視圖,最高可達Armv8.4版本。
該指南涵蓋:
?跟蹤是什么以及如何使用
?跟蹤體系結構是如何定義的,以及它如何映射到不同的跟蹤組件實現
?在Arm系統中可以看到哪些跟蹤
發表于 08-02 06:11
本文檔介紹ARMv8-A[ARMv8]的可伸縮向量擴展[SVE]對在應用程序處理器上以安全狀態執行的軟件的影響。
本文檔考慮了部署現有ARMv8
發表于 08-23 06:17
處理器授權大廠ARM于上周(10/27)公布最新處理器規格ARMv8架構,一舉將其產品線推入64位元市場。ARMv8以ARMv7架構為基礎,并內含64位元指令集,預估可將32/64位元應用優勢極大化。
發表于 11-01 09:32
?1498次閱讀
無晶圓網絡芯片公司Cavium宣布,計劃提供一個基于全定制內核設計的的家用多核系統芯片,該芯片是由ARM公司基于ARMv8 64位指令集架構基礎上設計和實現的。該公司表示,該芯片將針對“
發表于 08-02 16:57
?1496次閱讀
ARMv8架構是首個包括64位執行模式的ARM架構,允許處理器將64位執行模式與32位執行模式相結合。開發該版本ARM指令系統的關鍵技術之一是將ARM處理器工藝的高能效優勢融入64位計算,并獲得更大的可用虛擬地址空間。ARMv8架構在異常及異常處理方面引入一種全新機制
發表于 09-12 19:01
?11次下載
ARMv8處理器CPU 基于ARMv8的系統中的虛擬化工具在這些系統中起著特殊的作用,它由幾個組件組成,雖然ARMv7具有特殊的CPU模式來運行虛擬機管理程序作為擴展,但在
發表于 10-13 20:00
?854次閱讀
基于ARMv8的系統中的虛擬化設施在這些系統中扮演著特殊角色,并且由幾個組件組成。盡管ARMv7具有特殊的CPU模式來運行虛擬機監控程序作為擴展,但在ARMv8中,它已成為體系結構的一
發表于 05-13 10:48
?2082次閱讀
ARMv8基本概念
(1)執行狀態(execution state):處理器運行時的環境,包括寄存器的位寬、支持的指令集、異常模型、內存管理及編程模型等。ARMv8體系結構定義了兩個執行狀態:
AArch64:64位的執行狀態
提供31個64位的通用寄存
發表于 04-16 10:45
?6541次閱讀
rk3588是armv8嗎?rk3588 硬件資料 RK3588是一款高性能處理器,是Rockchip公司推出的最新芯片。本文將詳細介紹RK3588的硬件資料。 首先,我們需要了解一下RK3588
發表于 08-21 17:32
?3774次閱讀
),虛擬機管理器 EL3:最底層的安全固件,如 ARM Trusted Firmware(ATF/TF-A) ARMv8 提供了兩種安全狀態:Secure 和 Non-secure,也就是安全
發表于 09-11 16:34
?1524次閱讀
先看arm官網提供的一張圖: 上圖詳細概括了arm官方推薦的armv8的啟動層次結構: 官方將啟動分為了BL1,BL2,BL31,BL32,BL33階段,根據順序,芯片啟動后首先執行B
發表于 12-07 11:09
?2305次閱讀
u-boot armv8鏈接腳本 在進行源碼分析之前,首先看看u-boot的鏈接腳本,通過鏈接腳本可以從整體了解一個u-boot的組成,并且可以在啟動分析中知道某些邏輯是在完成什么工作。 在
發表于 12-07 11:19
?719次閱讀
評論