exynos4412中文手册(9.1节)
9.1 综述
GIC(一般中断控制)是在系统中支持和管理中断的集中资源。
GIC提供:
- 管理中断源,中断工作方式,多处理器中断路由选择的寄存器
- 支持
- ARM架构安全扩展
- 从硬件中断源使能、禁止使能、产生处理器中断
- 产生软件中断
- 中断屏蔽功能和优先级处理功能
9.1.1 特点
GIC的特点:
- 支持3中中断类型
- 软件生成的中断(SGI)
- 私有外设中断(PPI)
- 公有外设中断(SPI)
- 可编程中断支持配置
- 中断安全状态
- 中断优先级
- 使能或者禁止使能中断
- 接收中断处理
9.1.2 安全扩展支持
ARM GIC架构安全扩展支持:
- 确定每个中断安全与否
- 使用IRQ或者FIQ异常请求产生安全中断到目标处理器
- 使用统一格式处理安全或者非安全中断
- 可选择锁定一些安全中断的配置
- 系统软件单独的定义每个执行中断是否安全
- 在GIC中,处理器访问寄存器的行为依赖于访问是否安全,当访问GIC寄存器时:
-GIC忽略任何非安全的对存有状态信息的寄存器字段的写操作
非安全访问只能读或者配置非安全中断,安全访问能读或者配置安全与非安全中断
- 一个非安全中断对目标处理器产生一个IRQ中断请求
- 一个安全中断能对目标处理器产生一个IRQ或者FIQ
9.1.3 具体执行可配置特征
执行GIC期间,依赖于配置的特征如下:
- Exynos4412 GIC 配置
- 一共160个中断被支持,包括软件中断,私有设备中断和共享设备中断
- SPI中,你可以满足32*4=128个中断请求
- 表9-1描述了GIC配置值
9.1.4 术语
章节包括:
- 中断状态
- 中断类型
- 中断处理模型
- 处理器安全状态与GIC的安全、非安全访问
- 模块
9.1.4.1 中断状态
在系统中支持的GIC与每个处理器之间的接口状态包括:
- 非执行:中断处于不动作或者挂起状态
- 挂起:硬件声明或者软件生成的一个中断从源到GIC被识别到,它等待目标处理器的服务
- 执行:从源到GIC的中断被处理器识别,并被服务,但未完成
- 执行和挂起:处理器正在服务中断并且GIC挂起了相同源上的中断
9.1.4.2 中断类型
执行这种GIC架构的的设备能管理如下中断类型:
- 外设中断:信号声明这种中断到GIC,GIC架构定义的中断外设中断类型包括:
- PPI:外设中断特定于一个单处理器
- SPI:外设中断利用路由功能可寻址于任何一个连接的的处理器
- 每个外设中断是电压触发或者边沿触发的
- 边沿触发:当探测到中断信号的边沿变化时,中断被声明,这是无论电压高低,直到相同的条件发生时,声明被清除
- 电压触发:当电压变为高时,中断被声明,电压变低时,清除声明
9.1.4.2.1 软件中断
向GIC中的指定寄存器写入值会产生软件中断,系统利用软件中断为处理器之间的通信服务。软件中断具有边沿触发的特性,外设输入时,软件触发的中断等效于边沿信号触发的中断。多处理器处理中断有两种模型:
- 1-N模型:只有一个处理器处理这个中断,系统必须植入一个设备决定哪个处理器处理处理这个中断
- N-N模型:每个处理器独立的接受中断,当处理器识别到一个中断,这个中断的挂起状态针对于这个处理器被清除,但是其他处理器依然保持挂起状态
9.1.4.3 伪中断
可能GIC产生到一个处理器的中断不被需要了,所以当处理器认识到中断的时候,GIC返回一个特殊的中断ID以确定这个中断是一个伪中断
产生的原因如下:
- 中断状态的变化
- 软件重新编写了GIC,改变了中断处理需求
- 中断工作在1-N模式,但是其他处理器识别到了中断
9.1.4.4 处理器安全状态与GIC安全非安全访问
执行ARM安全扩展的处理器会有一种安全状态:
安全或者非安全:
- 处理器处于非安全状态只能进行非安全访问GIC
- 处理器处于安全状态能进行安全与非安全访问GIC
- 运行在非安全状态下的软件被描述成非安全软件
- 运行在安全状态下的软件被描述成安全软件
9.1.4.5 块
这个章节包括:
- 中断块
- 寄存器块
9.1.4.5.1 中断块
在多处理器中,PPIS,SGIs,GIC能在相同的中断ID下拥有多种中断。这种中断被称为块中断,当结合它的中断ID和它的CPU接口时,它被唯一的识别
9.1.4.5.2 寄存器块
寄存器块指的是对相同地址的寄存器执行多重拷贝,这会发生在如下情况:
- 相对于块中断的的寄存器的多处理器执行
- 在安全扩展模式下的GIC,寄存器执行了安全与非安全的两种拷贝