GIC spec之介绍5

支持的配置和兼容性

        在Armv8-A中,EL2和EL3是可选的,一个PE可以支持一个,或两个,或都不支持。但是:

(1)一个PE要求EL3支持安全和非安全两种状态;

(2)一个PE要求EL2支持虚拟化;

(3)如果EL3没有实现,仅单个安全状态。这个安全状态可能为安全状态,也可能为非安全状态;

        GICv3支持所有配置,AArch32和AArch64执行状态的中断处理。

​​​​​​​3.1 亲和性路由配置

        GICv3架构支持亲和性路由。它选择性支持:

(1)一个非对称配置,此时亲和性路由对非安全状态使能,对安全状态禁用。它提供一个安全传统环境;

(2)一个仅传统环境,此时亲和性路由对安全状态和非安全状态都禁用。​​​​​​​

3.2 系统寄存器配置

        当亲和性路由对两种安全状态都使能时,GIC必须配置使用系统寄存器来访问处理物理中断。架构不支持安全状态使能亲和性路由,并不支持系统寄存器访问安全状态。将GIC配置为这种状态会导致无法预测的行为。当亲和性路由在非安全状态执行上使能时,GIC架构选择性的支持对虚拟中断的传统操作,即在执行在EL2上hypervisor控制下,传统中断处理在非安全EL1。

​​​​​​​3.3 GIC控制和配置

        很多GIC寄存器以不同形式有效,并允许有效中断处理:

(1)两种安全状态;

(2)不同的中断group;

(3)使用GICv3的系统寄存器访问或对传统操作的内存映射访问;

        当系统寄存访问被使能,GIC架构的控制和配置由架构系统寄存器和定义GIC编程模型相关的访问来处理。

        一些寄存器通常为内存映射的,但GICv3中其他的使用系统寄存器访问。传统操作为内存映射访问。

Table 1-1 内存映射寄存器

寄存器名称的前缀

寄存器

GICD

Distributor寄存器

GICR

Redistributor寄存器

GITS

ITS寄存器

Table 1-2 对传统操作的内存映射寄存器

GICC

物理CPU接口寄存器

GICV

虚拟CPU接口寄存器

GICH

虚拟接口控制寄存器

Table 1-3 系统寄存器

ICC

物理CPU接口寄存器

ICV

虚拟CPU接口寄存器

ICH

虚拟接口控制寄存器

Armv8支持虚拟化,一个PE运行的异常级别决定是否物理CPU接口寄存器或虚拟CPU接口寄存器被访问。

猜你喜欢

转载自blog.csdn.net/flyingnosky/article/details/124002544
GIC