arm EL1 EL2 EL3
时间: 2023-09-01 21:09:06 浏览: 388
ARM 是一种处理器架构,它支持多个特权级别(privilege levels)来管理系统的不同部分。这些特权级别被称为 EL1、EL2 和 EL3。
EL1(Execution Level 1)是操作系统内核运行的特权级别,也称为非特权级。在 EL1 中,操作系统可以执行大部分指令并访问系统资源。
EL2(Execution Level 2)是虚拟化监管者(hypervisor)运行的特权级别,也称为监管者级。在 EL2 中,虚拟化监管者负责管理虚拟机(virtual machine)以及虚拟化的相关功能。
EL3(Execution Level 3)是可信执行环境(trusted execution environment)运行的特权级别,也称为安全级。在 EL3 中,可信执行环境负责提供高度安全的执行环境,通常用于处理敏感数据和关键任务。
这些特权级别的存在使得 ARM 架构能够实现更加灵活和安全的系统设计,适用于不同的应用场景和需求。不同的特权级别之间有不同的权限和访问控制,以保护系统的稳定性和安全性。
相关问题
arm el2与el3_ARMv8学习 —— SP_EL0和SP_ELx
ARMv8架构中引入了两个新的特权级别:EL2和EL3。EL2也称为虚拟化特权级别,EL3也称为保护特权级别。这两个特权级别是为虚拟化和安全方面的应用而设计的。
在ARMv8中,SP_EL0表示用户空间的栈指针,SP_EL1表示内核空间的栈指针。而SP_EL2和SP_EL3则分别表示虚拟化层和保护层的栈指针。
SP_ELx是一个异常级别特定的寄存器,x可以是0、1、2或3,分别表示EL0、EL1、EL2和EL3。当发生异常时,处理器会自动将当前的栈指针保存到对应的SP_ELx寄存器中,并将异常处理所需的新栈指针加载到SP_ELx寄存器中。
在虚拟化场景下,SP_EL2用于保存虚拟机监控程序(VMM)的栈指针。当VMM处理异常时,它会使用SP_EL2中保存的栈指针。
在保护场景下,SP_EL3用于保存可信执行环境(TEE)的栈指针。当TEE处理异常时,它会使用SP_EL3中保存的栈指针。
总之,SP_ELx是ARMv8架构中用于处理异常时栈指针的寄存器,其中x表示异常级别。在不同的特权级别中,SP_ELx寄存器用于不同的目的。
Secure EL2
Secure EL2是指安全执行级别2(Secure Execution Level 2)。在ARM体系结构中,EL2是一种特权级别,用于提供更高级别的安全性和隔离。Secure EL2通常用于安全处理器或安全环境中,以提供额外的安全保护和隔离。
Secure EL2的功能和配置是由SOC(System on Chip)决定的。在SOC出厂时,决定了是否支持Secure EL2。如果SOC支持Secure EL2,那么在启动过程中,EL3会直接返回到EL1,并且需要配置HCR_EL2.RW寄存器的值,以确定EL1是运行在Aarch32还是Aarch64模式下。
此外,Secure EL2的开启与关闭也受到SCR_EL3.EEL2寄存器的控制。如果将SCR_EL3.EEL2配置为0,那么Secure EL2将被禁用。在这种情况下,SCR_EL3.RW寄存器控制Secure EL1是运行在Aarch32还是Aarch64模式下。如果将SCR_EL3.EEL2配置为1,那么Secure EL2的功能将与Normal侧的EL2类似,即使通过EL3直接返回到Secure EL1的流程,也需要配置HCR_EL2.RW寄存器。
总结来说,Secure EL2是一种提供额外安全保护和隔离的特权级别,其功能和配置由SOC决定,并受到HCR_EL2.RW和SCR_EL3.EEL2寄存器的控制。
阅读全文