文章目录
1、gicv2的pass功能
2、gicv1的pass功能
1、gicv2的pass功能
giv2使用的三种配置:
Bypass Indicates that the IRQ signal to the processor is driven by the legacy IRQ signal.
Deasserted Indicates that the IRQ signal to the processor is deasserted.
Driven by GIC Indicates that the IRQ signal to the processor is driven by the GIC CPU interface logic
bypass旁路功能,其实就是让整个gic无效掉,这里其实是给第三方的中断控制器输出的FIQ IRQ使用的。
giv2 bypass的控制位
背景 : 在gicv2架构上,irq是给REE用的,fiq是给TEE用的。
当cpu运行在TEE时,来了一个IRQ中断,此时在TEE的中断向量表中会毫无条件的将cpu切换等到REE中,REE处理完这个中断再将cpu切回来…
需求: 例如这样的一个需求:cpu运行在TEE时,来了一个IRQ中断,我不想让IRQ打断TEE而切回到REE处理,那么我们就可以在TEE中bypass irq。
如下图中红框部分所示,GICC_CTLR寄存器是banked的,我们在TEE中配置该寄存器时,EnableGrp1=0,Enable Grp0=1,FIQEn=1,然后就可以bypass所有的TEE IRQ中断了
下图是bypass fiq: