aarch64 在 EL3 中从 EL1 执行 IRQ



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

你想要的被称为"物理IRQ路由",通过scr_el3控制。从手册:

IRQ,位 [1]物理 IRQ路由。 0b0 在低于 EL3 的异常级别执行时,物理 IRQ 中断不会带到 EL3。 在 EL3 上执行时,不会发生物理 IRQ 中断。 0b1 在任何异常级别执行时,物理 IRQ 中断 被带到EL3。

如果您只想在 EL3 处处理一些IRQ,而将其他 IRQ 留给 EL1,那么您可以通过设置在 EL3 异常向量中简单地处理它:

  • spsr_el1spsr_el3.
  • elr_el1elr_el3.
  • elr_el3vbar_el1加上0x80/0x280/0x480/0x680之一,具体取决于spsr_el3中的状态位。
  • spsr_el3 = (spsr_el3 & ~0xf00fff) | 0x3c5.如果您的架构支持 PANspsr_el1,您还必须检查SPAN字段的,如果为零,则0x400000spsr_el3

相关内容

  • 没有找到相关文章

最新更新