GICD_TYPER,只读寄存器,相对于distributor基地址偏移0x4,本寄存器提供gic的配置信息,主要有以下几点:
1、可以通过本寄存器查看gic是否实现安全扩展;
2、可以查看gic支持的最大中断号;
3、系统中有几个cpu interfaces;
4、如果gic实现了安全扩展,通过此寄存器还可以查看系统中Lockable Shared Peripheral Interrupts (LSPIs)的数量;
此寄存器32bit位含义:
[31:16] --- reserved
[15:11] LSPI
如果gic实现了安全扩展,这个域表示lockable SPIs的数量(0b00000---0b11111),如果没有实现安全扩展,此域为reserved.
[10] SecurityExtn
标志gic是否实现安全扩展,0:未实现,1:实现
[9:8] ---- reserved
[7:5] CPUNumber
标志cpu interfaces的数量,cpu interfaces的实际数量总是比次域标示的数量多1,即如果此域的数值为0b011,那么就有4个cpu interfaces
[4:0] ITLinesNumber
标志着GIC支持的最大中断数,如果ITLinesNumber=N ,则最大的中断数为32*(N+1),比如0b00011,则支持128个中断,中断号取值范围为0-127,支持最大中断数为1020个(0b11111),其中中断号1020-1023保留做特殊用途。在没有实现安全扩展的gic中,只有1023中断号使用到了,如果没有足够高优先级的中断满足发往处理器,那么这个中断号发给处理器,处理器这时就知道没有需要处理的中断了。