Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Arm® Generic Interrupt Controller Architecture Specification GIC 架构版本 3 和版本 4

Copyright © 2008, 2011, 2015-2021 Arm Limited or its affiliates. All rights reserved.

Arm Generic Interrupt Controller Architecture Specification GIC 架构版本 3 和版本 4

Copyright © 2008, 2011, 2015-2021 Arm Limited or its affiliates. All rights reserved.

版本信息

本文档进行了以下更改。

变更历史

日期版本保密性变更
June 2015ANon-confidentialGICv3 和 GICv4 版本 A 首次发布。
December 2015BNon-confidentialGICv3 和 GICv4 版本 B 首次发布。
July 2016CNon-confidentialGICv3 和 GICv4 版本 C 首次发布。
August 2017DNon-confidentialGICv3 和 GICv4 版本 D 首次发布。
January 2019ENon-confidentialGICv3 和 GICv4 版本 E 首次发布。
February 2020FNon-confidentialGICv3 和 GICv4.1 版本 F 首次发布。
February 2021GNon-confidentialGICv3 和 GICv4.1 版本 G 首次发布。

本规范中的部分信息先前发布于 Arm[®] Generic Interrupt Controller, Architecture version 2.0, Architecture Specification

专有声明

本文档受版权和其他相关权利保护,本文档中包含的信息的实践或实施可能受一项或多项专利或待审专利申请的保护。未经 ARM 事先明确书面许可,不得以任何形式通过任何方式复制本文档的任何部分。除非明确规定,否则本文档不授予任何知识产权的明示或暗示许可、禁反言或其他形式的许可。

您对本文档中信息的访问,以您接受不会使用或允许他人使用这些信息来确定实施是否侵犯任何第三方专利为条件。

本文档按“现状“提供。ARM 不提供任何明示、暗示或法定的陈述和保证,包括但不限于关于本文档的适销性、满意质量、不侵权或特定用途适用性的暗示保证。为避免疑义,ARM 不对专利、版权、商业秘密或其他权利的范围和内容进行任何陈述,也未进行任何分析来识别或理解其范围和内容。

本文档可能包含技术错误或印刷错误。

在法律不禁止的范围内,无论何种情况下,ARM 均不对任何损害承担责任,包括但不限于任何直接、间接、特殊、偶然、惩罚性或后果性损害,无论如何造成,无论何种责任理论,因使用本文档而产生,即使 ARM 已被告知可能发生此类损害。

本文档仅包含商业项目。您应负责确保任何使用、复制或披露本文档完全符合任何相关出口法律法规,以确保本文档或其任何部分不会直接或间接违反此类出口法律而出口。在提及 ARM 客户时使用“合作伙伴“一词,并不打算创建或指代与任何其他公司的任何合作伙伴关系。ARM 可能随时对本文档进行更改,恕不另行通知。

如果这些条款中包含的任何条款与涵盖本文档与 ARM 的任何点击或签署书面协议的任何条款冲突,则点击或签署的书面协议优于并取代这些条款的冲突条款。本文档可能为方便起见翻译成其他语言,您同意如果本文档的英文版本与任何翻译之间存在任何冲突,协议英文版本的条款应占上风。

ARM 公司徽标和标有 ® 或 ™ 的词语是 ARM Limited(或其子公司)在美国和/或其他地方的注册商标或商标。保留所有权利。本文档中提及的其他品牌和名称可能是其各自所有者的商标。请遵循 ARM 的商标使用指南:http://www.arm.com/company/policies/trademarks。 Copyright © 2008, 2011, 2015-2021 Arm Limited or its affiliates. All rights reserved.

Arm Limited. Company 02557590 registered in England.

110 Fulbourn Road, Cambridge, England CB1 9NJ.

LES-PRE-20349

保密状态

本文档是非保密的。使用、复制和披露本文档的权利可能受到根据 Arm 与 Arm 交付本文档的一方签订的协议条款的许可限制。

产品状态

本文档中的信息是最终的,即用于已开发的产品。

网址

http://www.arm.com

渐进术语承诺

Arm 重视包容性社区。Arm 认识到我们和我们的行业使用了可能令人反感的术语。Arm 努力引领行业并创造变革。

本文档的先前版本包含可能令人反感的术语。我们已替换这些术语。

如果您在本文档中发现令人反感的术语,请联系 [email protected]

目录 Arm Generic Interrupt Controller Architecture Specification GIC 架构版本 3 和版本 4

前言
关于本规范
使用本规范
约定
补充阅读
反馈
1介绍
1.1关于 Generic Interrupt Controller (GIC)
1.2术语
1.3支持的配置和兼容性
2中断的分发和路由
2.1Distributor 和 Redistributor
2.2INTID
2.3亲和性路由
3GIC 分区
3.1GIC 逻辑组件
3.2中断旁路支持
4物理中断处理和优先级排序
4.1中断生命周期
4.2Locality-specific Peripheral Interrupt
4.3Private Peripheral Interrupt
4.4Software Generated Interrupt
4.5Shared Peripheral Interrupt
4.6中断分组
4.7启用中断分发
4.8中断优先级排序
5Locality-specific Peripheral Interrupt 和 ITS
5.1LPI
5.2Interrupt Translation Service
5.3ITS 命令
5.4通用 ITS 伪代码函数
5.5ITS 命令错误编码
5.6ITS 电源管理
6虚拟中断处理和优先级排序
6.1关于 GIC 对虚拟化的支持
6.2操作概述
6.3VM 的配置和控制
6.4伪代码
7GICv4.0 虚拟 LPI 支持
7.1关于 GICv4.0 虚拟 Locality-specific Peripheral Interrupt 支持
7.2虚拟中断的直接注入
8GICv4.1 虚拟中断支持
8.1关于 GICv4.1 虚拟中断支持
8.2CPU interface 的变更
8.3ITS 命令
8.4vPEID 宽度
8.5门铃
8.6vPE 驻留和定位数据结构
8.7基于寄存器的 vLPI 失效
8.8vSGI 的直接注入
9内存分区和监控
9.1概述
9.2MPAM 和 Redistributor
9.3MPAM 和 ITS
9.4GIC 对 MPAM 的使用
9.5GICv4.1 数据结构和 MPAM
10连接到 Armv8-R AArch64 PE
10.1Armv8-R AArch64 CPU interface 要求
11电源管理
11.1电源管理
12程序员模型
12.1关于程序员模型
12.2AArch64 系统寄存器描述
12.3虚拟寄存器的 AArch64 系统寄存器描述
12.4AArch64 虚拟化控制系统寄存器
12.5AArch32 系统寄存器描述
12.6虚拟寄存器的 AArch32 系统寄存器描述
12.7AArch32 虚拟化控制系统寄存器
12.8GIC Distributor 寄存器映射
12.9GIC Distributor 寄存器描述
12.10GIC Redistributor 寄存器映射
12.11GIC Redistributor 寄存器描述
12.12GIC CPU interface 寄存器映射
12.13GIC CPU interface 寄存器描述
12.14GIC 虚拟 CPU interface 寄存器映射
12.15GIC 虚拟 CPU interface 寄存器描述
12.16GIC 虚拟接口控制寄存器映射
12.17GIC 虚拟接口控制寄存器描述
12.18ITS 寄存器映射
12.19ITS 寄存器描述
12.20伪代码
13系统错误报告
13.1关于系统错误报告
14传统操作和非对称配置
14.1中断和非对称配置的传统支持
14.2非对称配置
14.3VM 传统操作的支持
附录 AGIC Stream 协议接口
A.1概述
A.2信号和 GIC Stream 协议
A.3GIC Stream 协议
A.4命令和响应包格式的字母表列表
附录 B伪代码定义
B.1关于 Arm 伪代码
B.2数据类型
B.3表达式
B.4操作符和内置函数
B.5语句和程序结构
B.6伪代码术语
B.7杂项辅助程序和支持函数

词汇表

vii viii

前言

本前言介绍 Arm[®] Generic Interrupt Controller Architecture Specification 。包含以下部分:

  • 关于本规范 第 x 页。

  • 使用本规范 第 xi 页。

  • 约定 第 xiii 页。

  • 补充阅读 第 xiv 页。

  • 反馈 第 xv 页。 前言 关于本规范

关于本规范

本规范描述了 Arm Generic Interrupt Controller (GIC) 架构。它定义了 GIC 架构的版本 3.0、3.1、3.2(GICv3)、4.0 和 4.1(GICv4)。

在整个文档中,对 GIC一个 GIC 的引用指实现 GIC 架构的设备。除非上下文明确表示引用是设备的 IMPLEMENTATION DEFINED 功能,否则这些引用描述本规范的要求。

目标受众

本规范适用于想要在一系列符合 Arm 标准的实现中设计、实现或编程 GIC 的用户,从简单的单处理器实现到复杂的多处理器系统。它不假设熟悉 GIC 的先前版本。

本规范假设用户对 Arm 产品有一定经验,并熟悉描述 Armv8 架构的术语。有关更多信息,请参见 Arm[®] Architecture Reference Manual, Armv8, for Armv8-A architecture profile前言 使用本规范

使用本规范

本规范组织为以下章节:

第 1 章 介绍

阅读本章了解 GIC 的概述,以及本文档使用的术语信息。

第 2 章 中断的分发和路由

阅读本章了解 GIC 如何使用亲和性路由分发中断。

第 3 章 GIC 分区

阅读本章了解 GIC 分区的概述和 GIC 逻辑组件的信息。 第 4 章 物理中断处理和优先级排序 阅读本章了解 GIC 如何处理物理中断。 第 5 章 Locality-specific Peripheral Interrupt 和 ITS 阅读本章了解 Locality-specific Peripheral Interrupt (LPI) 和 Interrupt Translation Service (ITS) 的使用描述。 第 6 章 虚拟中断处理和优先级排序 阅读本章了解 GIC 如何处理虚拟中断。 第 7 章 GICv4.0 虚拟 LPI 支持

阅读本章了解 GIC 如何处理虚拟中断。 第 8 章 GICv4.1 虚拟中断支持 阅读本章了解 GICv4.1 中虚拟中断支持的变更。 第 9 章 内存分区和监控 阅读本章了解 GIC 上下文中的内存分区和监控描述。 第 10 章 连接到 Armv8-R AArch64 PE 阅读本章了解将 GIC 连接到实现 Armv8-R64 的 PE。 第 11 章 电源管理 阅读本章了解 GIC 电源管理。 第 12 章 程序员模型 阅读本章了解 GIC 寄存器接口和所有 GIC 寄存器的描述。 第 13 章 系统错误报告 阅读本章了解 GIC 对错误报告的支持。 第 14 章 传统操作和非对称配置 阅读本章了解 GIC 对传统操作和非对称配置的支持。 附录 A GIC Stream 协议接口

阅读此附录了解 GIC Stream 协议接口使用的 AXI4-Stream 协议标准基于消息的接口描述。

附录 B 伪代码定义

阅读此附录了解本规范中使用的伪代码定义。

词汇表

阅读词汇表了解本规范中使用的一些术语定义。 前言 使用本规范

前言 约定

约定

以下部分描述本书可能使用的约定:

  • 排版约定

  • 信号

  • 数字

  • 伪代码描述

排版约定

排版约定为:

斜体 引入特殊术语,表示引用。 粗体 表示信号名称,在适当时用于描述性列表中的术语。 等宽字体 用于汇编语法描述、伪代码和源代码示例。也在正文中用于指令助记符和对汇编语法描述、伪代码和源代码示例中出现的其他项的引用。

小型大写字母

用于具有特定技术含义且包含在 词汇表 中的少数术语。

彩色文本 表示链接。这可以是:

  • URL,例如 https://developer.arm.com。

  • 交叉引用,如果引用信息不在当前页面,则包括引用信息的页码,例如,关于 Generic Interrupt Controller (GIC) 第 1-18 页。

  • 链接,指向章节或附录、词汇表条目,或定义彩色术语的文档部分,例如,Banked register 或 GICC_CTLR。

信号

一般来说,本规范不定义处理器信号,但它包含一些信号示例和建议。信号约定为:

信号电平 断言信号的电平取决于信号是高电平有效还是低电平有效。断言意味着:

  • 高电平有效信号为 HIGH

  • 低电平有效信号为 LOW。

小写 n 在信号名称的开头或结尾表示低电平有效信号。

数字

数字通常用十进制书写。二进制数字前加 0b,十六进制数字前加 0x。在这两种情况下,前缀和相关值都用等宽字体书写,例如 0xFFFF0000。

伪代码描述

本规范使用一种形式的伪代码来提供指定功能的精确描述。此伪代码用等宽字体书写,并遵循 Arm[®] Architecture Reference Manual, Armv8, for Armv8-A architecture profileArm[®] Architecture Reference Manual, Armv7-A and Armv7-R edition 中描述的约定。 前言 补充阅读

补充阅读

本节列出了 Arm 和第三方的相关出版物。

请参见 Arm Developer,https://developer.arm.com 获取 Arm 文档。

Arm 出版物

  • AMBA[®] 4 AXI4-Stream Protocol Specification (ARM IHI 0051)。

  • Arm[®] Architecture Reference Manual, Armv7-A and Armv7-R edition (ARM DDI 0406)。

  • Arm[®] Architecture Reference Manual, Armv8, for Armv8-A architecture profile (ARM DDI 0487)。

  • Arm[®] Architecture Reference Manual Supplement, Memory System Resource Partitioning and Monitoring (MPAM), for Armv8-A (ARM DDI 0598)。

  • Arm[®] Generic Interrupt Controller, Architecture version 2.0, Architecture Specification (ARM IHI 0048)。

  • Arm[®] CoreSight[™] Architecture Specification v3.0 (ARM IHI 0029)。

  • Arm[®] Server Base System Architecture (SBSA) (ARM-DEN-0029)。

  • GICv3 and GICv4 Software Overview (DAI 0492)。

  • Application Note GIC Stream Protocol Interface (ARM-ECM-0495013)。

其他出版物

本手册中引用或提供更多信息的以下书籍:

  • JEDEC Solid State Technology Association, Standard Manufacture’s Identification Code , JEP106。 前言 反馈

反馈

Arm 欢迎对其文档提供反馈。

对本手册的反馈

  • 如果您对本手册的内容有意见,请发送电子邮件至 [email protected]。请提供: • 标题。

  • 编号,Arm IHI 0069G。

  • 您的意见适用的页码。

  • 您意见的简明解释。

Arm 也欢迎对新增和改进的一般建议。 前言 反馈