ARM-v8a异常等级

来自Uotan Wiki · 刷机百科
等级 长名称 描述 调用指令
EL3 0xC/12 Secure Monitor 固件或安全监视器 SMC
EL2 0x8/8 Hyper Visor 虚拟化管理器 HVC
EL1 0x4/4 Super Visor 操作系统内核 SVC
EL0 - Application 用户程序 -

每个异常等级都拥有自己的MMU页表,内存可隔离,高等级的环境可以访问低等级的寄存器和内存

当程序执行调用指令时,会进入目标等级先前设置的向量表(VBAR_ELX)以处理调用

当程序进行跨级调用时,直属上级可以截获并处理调用,并将返回地址设置在ELR寄存器。触发ERET时,将回到低等级的ELR处继续执行

Linux操作系统内核的KVM需要Linux内核以EL2等级进行启动,vhe将会在EL2下保持运行成为Hypervisor

高通平台启动示意图