[gic]-中断虚拟化-Host和Guest的中断处理流程举例(gicv3举例)

标签: 虚拟化, hypervisor,virtulization,SPM,EL2,Trustzone,ATF,TF-A,hafnium,中断,异常,ARMV8,ARMV9,ARM,安全,trustedfirmware

说明
本文讲述的前提是:enable EL2, 不考虑中断被EL3 trapped的情况,以irq/virq进行阐述

背景:
随着时代的发展、科技的进步,安全需求的趋势也越来越明显,ARM也一直在调整和更新其新架构,很多都是和安全相关的。
如下列出了一些和安全相关的架构
在这里插入图片描述
,其中:

  • ARMV8.1 支持了VHE
  • ARMV8.4支持了S-EL2

作为一名安全领域的渣渣 ,有必要去学习虚拟化技术,因为它也属于ARM安全架构的一部分。而异常/中断做为架构中的灵魂,我们不得不去深入研究…


正文
影响中断routing的相关控制位主要是HCR_EL2.IMO/FMO/AMO(本文只探讨irq/virq,所以我们只看IMO比特位),除此之外还有HCR_EL2.TGE比特位影响Application是做为Host还是Guest.

以下是这些比特位的路由规则的总结:
在这里插入图片描述

我们学习了其原理之后,我们再看4个示例:
(1)、HCR_EL2.IMO=1 , HCR_EL2.TGE=1routing到EL2,Application做为Guest
在这里插入图片描述

(2)、HCR_EL2.IMO=1 , HCR_EL2.TGE=0routing到EL2,Application做为Host
在这里插入图片描述

(3)、HCR_EL2.IMO=0 , HCR_EL2.TGE=1routing到EL1,Application做为Guest
在这里插入图片描述

(4)、HCR_EL2.IMO=0 , HCR_EL2.TGE=0routing到EL1,Application做为host
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_42135087/article/details/120931146