Fork me on GitHub
侧边栏

【ARMv8v9 GIC 系列 1.5 -- Enabling the distribution of interrupts】

Enabling the distribution of interrupts

ARM GICv3和GICv4体系结构中,中断分发的启用与禁用是通过一系列控制位来实现的。这些控制位分布在不同的控制寄存器中,用于控制中断分组的分发以及CPU接口处的中断分组分发。

image

GIC Distributor 中断组分发控制

以下控制位用于启用和禁用中断的分发:

  • GICD_CTLR.EnableGrp1S :启用或禁用安全状态下的Group 1中断分发。
  • GICD_CTLR.EnableGrp1NS :启用或禁用非安全状态下的Group 1中断分发。
  • GICD_CTLR.EnableGrp0 :启用或禁用Group 0中断分发。

关于 GICD_CTRL 见文章 【ARMv8/v9 GIC 系列 5 – GIC GICD_CTRL 使用详细介绍】 。代码中配置GICD的第一个配置的 寄存器

CPU Interface 中断组分发控制

以下控制位用于在CPU Interface 启用和禁用中断组的分发:

  • ICC_IGRPEN0_EL1.Enable :用于启用或禁用Group 0中断。这一设置控制CPU是否处理Group 0中断。

  • ICC_IGRPEN1_EL1.Enable :用于启用或禁用Group 1中断。这一设置控制CPU是否处理Group 1中断。该寄存器有安全和非安全两个副本,分别控制相应安全状态下的Group 1中断处理。

  • ICC_IGRPEN1_EL3.{EnableGrp1S, EnableGrp1NS} :在EL3级别,分别用于启用或禁用安全状态和非安全状态下Group 1中断的处理。

Physical LPIs 的启用

  • GICR_CTLR.EnableLPIs :通过写入此位来启用物理局部中断(LPIs)。LPIs是一类特殊的中断类型,主要用于支持大量中断源,常见于服务器和复杂的嵌入式系统中。

Summary

这些控制位和寄存器提供了灵活的中断管理机制,使得系统设计者可以根据系统的安全需求和性能要求,精细地控制不同安全状态下的中断分发和处理。通过合理配置这些控制位,可以优化系统的中断响应时间,提高系统的运行效率和可靠性。

posted @ 2025-04-27 23:09  yooooooo  阅读(45)  评论(0)    收藏  举报