aarch64从EL3中的EL1执行IRQ

问题描述

如果在EL1上下文中触发了IRQ,是否可以在EL3(安全监视器)中执行IRQ?例如。我通过spsr_el3(选择了el1h)输入了EL1,然后用vbar_el1设置了一个向量表。现在,我想在EL3模式下执行一些IRQ。我该怎么办?

解决方法

您想要的称为“物理IRQ路由”,并通过scr_el3进行控制。来自the manual

IRQ,bit [1]

        Physical IRQ Routing.

        0b0     When executing at Exception levels below EL3,physical IRQ
                interrupts are not taken to EL3.
                When executing at EL3,physical IRQ interrupts are not taken.

        0b1     When executing at any Exception level,physical IRQ interrupts
                are taken to EL3. 

如果您只想在EL3上处理一些 IRQ,而将其他的留给EL1,则只需设置以下内容即可在EL3异常向量中进行处理:

  • spsr_el1spsr_el3
  • elr_el1elr_el3
  • elr_el3vbar_el1加上0x80 / 0x280 / 0x480 / 0x680中的一个,具体取决于{{1}中的状态位}。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...