虚拟化之安全虚拟化

虚拟化首次引入是在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。

相关推荐
Dlrb12112 天前
ARM---IMX6ULL的LCD模块简介及LCD驱动程序的编写
arm开发·lcd·arm·imx6ull·显存·像素
Hi202402173 天前
Cortex-A53 + GIC700 + Boot BRAM Vivado 全流程复现
arm·fpga·vivado
海浪鱼4 天前
Cortex M7-TRM 翻译系列之ITM(十二)
arm·m7
带娃的IT创业者6 天前
原生体验的回归:深入解析 TREK —— 专为 Apple Silicon 打造的轻量级容器方案
macos·docker·虚拟化·开源项目·容器化·apple silicon·trek
Dlrb12117 天前
ARM---I2C协议时序详解以及IMX6ULL使用I2C协议与AT24C02,LM75A芯片通信详解与示例代码
嵌入式硬件·arm·lm75a·i2c协议·at24c02·i2c时序
Dlrb12119 天前
ARM---IMX6ULL定时器详解与应用:EPIT与GPT定时器,高精度延时函数
arm开发·gpt·arm·定时器·epit·高精度延时
Dlrb12119 天前
ARM -IMX6ULL的中断系统、GIC、CP15协处理器详细讲解
arm开发·arm·imx6ull·中断·gic·cp15·协处理器
spider_xcxc10 天前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
Dlrb121110 天前
ARM---I.MX6ULL时钟系统详解、时钟树、系统时钟配置等
单片机·嵌入式硬件·arm·imx6ull·pll·时钟树·cortex-a7
m0_7156467612 天前
20260720
linux·arm