[gic]-gicv2的bypass功能

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功能

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42135087/article/details/107213283
GIC