标签: 虚拟化, 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=1 –routing到EL2,Application做为Guest
(2)、HCR_EL2.IMO=1 , HCR_EL2.TGE=0 –routing到EL2,Application做为Host
(3)、HCR_EL2.IMO=0 , HCR_EL2.TGE=1 –routing到EL1,Application做为Guest
(4)、HCR_EL2.IMO=0 , HCR_EL2.TGE=0 –routing到EL1,Application做为host