Fork me on GitHub
侧边栏

【ARMv8v9 GIC 系列 1.8 -- PE 中断处理的前期评估】

Interaction of group and individual interrupt enables

ARM GICv3和GICv4架构中, GICD_* GICR_* 寄存器 组 决定了处理器元素(PE)能够识别的最高优先级 pending interrupt 。这些寄存器决定PE的最高优先级 pending interrupt 。这个 pending interrupt 被提交给PE的 CPU Interface,由它来决定是否将其标记给PE。中断的使能对这一决定有如下影响:

  1. Disable的 Pending Interrupt :在 GICD_* GICR_* 寄存器中被 Disable 的 pending interrupt ,在确定最高优先级 pending interrupt 时不被考虑,因此不能被标记给PE。
  2. 属于 Disable 组的 Enable 中断 :在 GICD_* GICR_* 寄存器中被 Enable 但属于在 GICD_CTLR 中被 Disable的组的 pending interrupt ,在确定最高优先级 pending interrupt 时不被考虑,因此不能被标记给PE。
  3. 属于 Disable组的1对N 中断 :在 GICD_* 寄存器中被 Enable 且属于在 GICD_CTLR 中 Enable 的组,但同时属于在 ICC_IGRPEN0_EL1 ICC_IGRPEN1_EL1 ICC_IGRPEN1_EL3 中针对某PE被 Disable 的组的1对N pending interrupt ,不能为那个PE所选。这样的中断在确定最高优先级 pending interrupt 时不被考虑,因此不能被标记给PE。
  4. 属于Disable 组的直接中断 :在 GICD_* GICR_* 寄存器中被 Enable 且属于在 GICD_CTLR 中 Enable 的组,但同时属于在 ICC_IGRPEN0_EL1 ICC_IGRPEN1_EL1 ICC_IGRPEN1_EL3 中针对某PE被 Disable 的组的直接 pending interrupt ,是否被考虑在确定最高优先级 pending interrupt 时是由具体实现定义的。如果它被确定为最高优先级 pending interrupt ,该中断不会被标记给PE,但会屏蔽属于在 ICC_IGRPEN0_EL1 ICC_IGRPEN1_EL1 ICC_IGRPEN1_EL3 中启用的组的较低优先级的 pending interrupt

LPIs的启用

  • 局部中断(LPIs) :是通过LPI配置表中的 Enable 位启用的。这为更细粒度的中断管理提供了灵活性,允许对每个LPI进行个别配置和管理。
posted @ 2025-05-11 21:03  yooooooo  阅读(25)  评论(0)    收藏  举报