首页 > TAG信息列表 > EL2
linux aarch64 head.S el2_setup
el2_setup 检查运行级别,如果是 EL1,简单设置 SCTRL_EL1 后就退出。 如果是 EL2级别,就要作很多EL2 需要的设置,然后切换到EL1 级别,然后退出。 <1> 使用 SP_EL{1,2} 寄存器作为 SP 寄存器。 <2> 获取当前运行 级别到 X0,然后和 EL2 级别进行比较。 如果不相等Armv8-A虚拟化手册(5)
8. VHE 下图呈现了一个简化的软件栈和异常级别: 你可以看到一个独立的hypervisor是如何映射到ARM异常级别。hypervisor运行在EL2而虚拟机运行在EL0/1。这种情况在托管hypervisor上存在问题,如下图所示: 通常,内核运行在EL1,但虚拟Armv8-A虚拟化手册(3)
6. 虚拟化异常 在系统中中断被硬件用于发送事件给软件。比如,GPU可能发送中断通知它完成了渲染帧。 使用虚拟化的系统更复杂。一些中断可能由hypervisor自己处理。其他中断可能来自分配了虚拟机的设备,并且需要由虚拟机中的软件来处理。中断目标[hypervisor]-AArch64 (hypervisor)Virtualization学习笔记
主流的操作系统都有一个假设,就是这个系统有一个特权模式下的os,之上在跑多个非特权模式的APP. 而ARM的虚拟化技术就是在同一个系统上共存多个操作系统. 实现这种虚拟core需要硬件的扩展(加速虚拟机之间的切换)和hypervisor软件层的实现. Virtualization是一个允许多个操作系统共享[architecture]-ARMV8的ELx等级切换
在armv8中,有EL0、EL1、EL2、EL3四个权限级别. 低级别像高级别切换是通过触发异常来进行的。例如: 1、在EL0时调用svc指令,触发一个同步异常,cpu则会陷入EL1; 2、在EL0时来了一个IRQ或FIQ,会触发一个异步异常,cpu则会陷入EL1或EL2或EL3(根据SCR寄存器中中断的配置来决定); 高级别向低级