1. Arm GIC-625中断控制器架构解析
GIC-625是Arm CoreLink系列中的通用中断控制器(Generic Interrupt Controller),采用分布式架构设计,专为多核SoC系统优化。其核心功能包括:
- 支持多达32个处理器核心的中断分发
- 实现Armv8-A架构的GICv3/v4兼容接口
- 提供硬件级错误检测与恢复机制(RAS)
- 支持安全与非安全状态隔离
1.1 核心寄存器组分类
GIC-625的寄存器主要分为三大功能组:
-
Redistributor寄存器(GICR_前缀)
负责处理器私有中断(PPI)和软件生成中断(SGI)的管理,典型寄存器包括:- GICR_ICERRR0:中断清除错误寄存器
- GICR_CFGID0/1:配置标识寄存器
-
调试跟踪寄存器(GICT_前缀)
提供错误记录和调试功能,关键寄存器有:- GICT_ERRGSR:错误组状态寄存器
- GICT_IIDR:实现者标识寄存器
-
性能监控寄存器(GICP_前缀)
用于系统性能分析,包含:- GICP_EVCNTRn:事件计数器
- GICP_EVTYPERn:事件类型配置
关键提示:所有寄存器默认仅支持安全访问,需通过GICD_SAC寄存器的GICTNS/GICPNS位开启非安全访问权限。
2. 关键寄存器深度剖析
2.1 错误处理寄存器组
2.1.1 GICR_ICERRR0寄存器
这个32位寄存器用于记录PPI/SGI中断清除操作时的错误状态:
| 位域 | 名称 | 功能描述 |
|---|---|---|
| [31:0] | Status | 错误状态位,每位对应一个中断ID |
| - | RES0 | 保留位,读为0 |
访问特性:
- 仅支持安全访问(GICD_SAC.GICTNS=0时)
- 在16个PPI的配置中(GICR_TYPER.PPInum=0
