文章目录
GIC 类型寄存器 GICD_TYPER

GICD_TYPER寄存器,即中断控制器类型寄存器,是ARM GIC(通用中断控制器)中的一个关键寄存器,它提供了关于GIC本身特性的详细信息。以下是GICD_TYPER寄存器的各个字段的详细介绍:
ESPI_Range, 位[31:27]
- 这些位指示支持的扩展SPI(共享外设中断)的范围。这对于支持大量外设中断的实现特别重要,最大可以支持范围是
(32*(ESPI_range + 1) + 4095)。
RSS, 位[26]
- Range Selector Support(范围选择器支持)。这表示GIC是否支持基于范围的选择器,这对于中断的分配和管理至关重要。
No1N, 位[25]
- 表示是否支持每N个SPI中断中的1个中断。这涉及到中断的分布和优先级管理。详细内容见:【ARMv8/v9 GIC 系列 5.1 – GIC GICD_CTRL Enable 1 of N Wakeup Function】。
A3V, 位[24]
- Affinity 3 Valid(亲和性3有效)。指示分配器是否支持非零值的亲和性level3。在多核系统中,这与处理器的分组和任务调度有关。
IDBits, 位[23:19]
- 指示支持的中断标识符位数减一。这个值决定了GIC可以支持的中断数量。
DVIS, 位[18]
- 表示实现是否支持直接虚拟LPI(局部性特定外设中断)注入。这对于虚拟化环境中中断的高效管理非常重要。
LPIs, 位[17]
- 表示实现是否支持LPIs。LPIs是面向更大规模中断系统的设计,允许灵活的中断分配和管理。
MBIS, 位[16]
- 表示实现是否通过写入分配器寄存器支持基于消息的中断。这为中断通信提供了一种高效机制。
NUM_LPIs, 位[15:11]
- 表示支持的
LPIs数量。这个字段给出了LPI支持的具体规模。
SecurityExtn, 位[10]
- 表示GIC实现是否支持两种安全状态。这对于设计需要区分安全和非安全中断的系统来说非常重要。
NMI, 位[9]
Non-Maskable Interrupts(非屏蔽中断)。这表示GIC是否支持NMI,这种中断在系统级紧急情况下非常重要,因为它们无法被禁用。
ESPI, 位[8]
- 表示是否支持扩展
SPI。这对于需要处理大量外设中断的大型系统来说很重要。
CPUNumber, 位[7:5]
- 报告在未启用亲和性路由时可以使用的处理器元素(PE)数量减一。这些PE必须从零开始连续编号,但这个数字与
MPIDR中的亲和性层次结构之间的关系是由实现定义的。
ITLinesNumber, 位[4:0]
- 对于INTID范围为
32到1019的情况,指示支持的最大SPI。如果这个字段的值为n,则最大SPI INTID为32(n+1)减1。例如,00011表示最大SPI INTID为127。无论这个字段定义的INTID范围如何,中断ID1020-1023都是为特殊用途保留的。值为0表示不支持SPIs。
GICD_TYPER寄存器提供了GIC的关键配置信息,使得系统软件可以根据GIC的能力和特性进行有效的中断管理和配置。
887

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



