GIC源码系列(二):MADT表

MADT表用于描述系统的中断模型,包括PC-AT的8259控制器和ARM系统的GIC。GICD结构体描述全局中断控制器,GICC结构体提供处理器接口信息,GICR用于GICv3及以上版本的基地址发现,而GICITS在GICv3/v4中处理即时中断。文章主要关注GICD_和GICC_系列寄存器在管理中断中的作用。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值