MADT表以统一中断模型实现描述了系统中所有的中断。支持中断模型包括PC-AT兼容的双8259中断控制器,对于ARM处理器系统,GIC控制器。
MADT格式如下所示:

中断控制器结构体支持的类型很多,这里仅介绍GIC相关的中断控制器结构体类型。
1 GICD结构体
它以全局系统中断GSIV代表所有线中断。在ARM系统中GIC管理系统中的中断。每个中断由INTID区分。ACPI中GSIV对于外设中断一一映射到GIC INTID,可能为SPI或PPI。GICD结构体将GICD描述给OS。GICD结构体如下所示:

2 GICC结构体
在GIC中断模型中,逻辑处理器要求在DSDT中有一个处理器Device Object,使用GICC结构体转换每个处理器GIC信息。
GICC结构体格式如下所示:

GICC CPU Interface标志:

3 GICR结构体
GICR通过提供包含GICR页的物理地址使能GICR基地址的discovery。在MADT中可以有超过一个GICR结构体。GICR结构体仅在GICv3或更高版本且将所有GICR放置always-on电源域时使用。当GICR结构体存在时,OSPM忽略GICC结构体中GICR Base Address域。

4 GIC ITS结构体
在GICv3/v4实现中GIC ITS是可选择的。GIC ITS结构体的格式如下所示:

GICD_ 、GICC_ 、GICV_ 、GICH_ 系列寄存器,因为不讨论虚拟中断,所以我们一般只关心 GICD_ 、GICC_ 开头的寄存器, GICD_ 代表 Distributor 分配器的寄存器, GICC_ 代表 CPU interface 的寄存器。
https://blog.csdn.net/flyingnosky/article/details/127417092
MADT表用于描述系统的中断模型,包括PC-AT的8259控制器和ARM系统的GIC。GICD结构体描述全局中断控制器,GICC结构体提供处理器接口信息,GICR用于GICv3及以上版本的基地址发现,而GICITS在GICv3/v4中处理即时中断。文章主要关注GICD_和GICC_系列寄存器在管理中断中的作用。

被折叠的 条评论
为什么被折叠?



