快速连接
👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈
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:
2、gicv1的pass功能
关注"Arm精选"公众号,备注进ARM交流讨论区。