GICv3软件overview手册之介绍

        本文档提供了GICv3特性的软件overview,并且描述GICV3中断控制器的操作。它也只是如何在裸机环境下配置GICV3中断控制器的简介。

        本文档是ARM通用中断控制器架构手册V3.0和V4.0的简介。它不能代替这两文档。可以查阅这两文档了解更多详细的寄存器和行为。

1. 范围

        GICV3允许很多不同的配置和使用。本文档只是作简单的介绍,且为所有使用的子集。它仅描述如下情况:

(1)存在两种安全状态;

(2)亲和路由在两种安全状态下使能;

(3)在所有的异常级别下系统寄存器的访问使能;

(4)连接的处理器与ARMv8-A兼容,执行所有异常级别且在所有级别上使用AARCH64;

        本文档不包含:

(1)传统的行为;

(2)AARCH32的使用;

2. GIC架构的历史简介

        GICV3增加了多个新特性。将这些新特性放入下表中,下表提供了不同版本的GIC及重要特性的简要overview。

版本

关键特性

典型使用

GICV1

支持最多8个PE

支持最多1020个中断ID

支持两个安全状态

ARM Cortex-A5 MPCore

ARM Cortex-A9 MPCore

ARM Cortex-R7 MPCore

GICV2

支持GICV1所有的重要特性

支持虚拟化

ARM Cortex-A7 MPCore

ARM Cortex-A15 MPCore

ARM Cortex-A53 MPCore

ARM Cortex-A57 MPCore

GICV3

支持GICV2所有的重要特性

支持超过8个PE

支持基于message的中断

支持超过1020个中断ID

支持系统寄存器访问CPU接口寄存器

兼容的安全模式,将安全和非安全分开

ARM Cortex-A53 MPCore

ARM Cortex-A57 MPCore

ARM Cortex-A77 MPCore

GICV4

支持GICV3所有的重要特性

虚拟中断的直接注入

ARM Cortex-A53 MPCore

ARM Cortex-A57 MPCore

ARM Cortex-A72 MPCore

NOTE: GICV2M是GICV2的扩展,增加了message中断的支持。

3. 传统支持

        GICV3对编程模型作了很多修改。为了支持GICV2系统的传统软件,GICV3支持传统操作。

        使用的编程模型由GICD_CTRL寄存器中ARE(affinity routing enable亲和性路由使能)位控制:

(1)当ARE=0时,亲和路由disable(传统操作);

(2)当ARE=1时,亲和路由使能;

NOTE:为了可读性,GICD_CTRL.ARE_S和GICD_CTRL.ARE_NS作为ARE在适当的地方被提及。

        在支持两个安全状态的系统中,亲和路由可以为每个安全状态分开控制。只有某些特殊情况下的合并被允许,如下图所示:

        本文档重点关注新的GICV3的编程模型,在两安全状态下ARE=1的情况。传统操作,ARE=0的情况不再描述。

NOTE: 支持传统操作是可选的。当实现了传统操作时,传统操作在其它情况下被选择。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值