虚拟化之安全虚拟化

虚拟化首次引入是在Armv7-A架构中。那时,Hyp模式(在AArch32中相当于EL2)仅在非安全状态下可用。当Armv8.4-A引入时,添加了对安全状态下EL2的支持作为一个可选特性。

当处理器支持安全EL2时,需要使用SCR_EL3.EEL2位从EL3启用该处理器。设置此位将启用进入EL2,并启用在安全状态下使用虚拟化功能。

在安全虚拟化可用之前,EL3通常用于托管一些混合了安全状态切换软件和平台固件的功能。这是因为我们希望最小化EL3中的软件数量,以便更容易保护EL3。安全虚拟化使得我们能够将平台固件移到EL1。虚拟化提供了用于平台固件和受信任内核的单独的安全分区。以下图表阐明了这一点:

安全EL2和两个中间物理地址空间

Arm架构定义了两个物理地址空间:安全(Secure)和非安全(Non-secure)。在非安全状态下,虚拟机(VM)的第一阶段翻译的输出始终是非安全的。因此,第二阶段需要处理单一的中间物理地址(IPA)空间。

在安全状态下,VM的第一阶段翻译可以输出安全和非安全地址。NS位在翻译表描述符中控制输出安全空间还是非安全空间。如下图所示,这意味着第二阶段有两个IPA空间,分别是安全和非安全:

与第一阶段表不同,第二阶段表条目中没有NS位。对于特定的IPA空间,所有的翻译结果要么是安全物理地址,要么是非安全物理地址。这个翻译由一个寄存器位来控制。通常,非安全的IPA翻译为非安全的PA,而安全的IPA翻译为安全的PA。

相关推荐
菜鸟别浪4 天前
内存管理-第1章-Linux 内核内存管理概述
linux·运维·云计算·虚拟化·内存管理
Stone.Wu5 天前
快速理解ARM Cortex-M流水线:指令执行过程通俗解释
arm
我在人间贩卖青春5 天前
汇编之分支跳转指令
汇编·arm·分支跳转
我在人间贩卖青春5 天前
汇编之加载存储指令
汇编·arm·寄存器加载存储
我在人间贩卖青春5 天前
汇编之状态寄存器访问指令
汇编·arm·状态寄存器
我在人间贩卖青春5 天前
汇编之软中断指令和协处理指令
汇编·arm·软中断·协处理
我在人间贩卖青春5 天前
汇编之数据处理指令
汇编·arm·数据处理指令
fly的fly9 天前
浅析 QT远程部署及debug方案
qt·物联网·arm
切糕师学AI11 天前
ARM标准汇编(armasm)中的标号(Label)
汇编·arm
CHENG-JustDoIt12 天前
嵌入式开发 | ARM Cortex-M 系列中M3、M4、M23 和 M33四款处理器的深度对比分析
arm开发·单片机·嵌入式硬件·arm