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 2015 | A | Non-confidential | GICv3 和 GICv4 版本 A 首次发布。 |
| December 2015 | B | Non-confidential | GICv3 和 GICv4 版本 B 首次发布。 |
| July 2016 | C | Non-confidential | GICv3 和 GICv4 版本 C 首次发布。 |
| August 2017 | D | Non-confidential | GICv3 和 GICv4 版本 D 首次发布。 |
| January 2019 | E | Non-confidential | GICv3 和 GICv4 版本 E 首次发布。 |
| February 2020 | F | Non-confidential | GICv3 和 GICv4.1 版本 F 首次发布。 |
| February 2021 | G | Non-confidential | GICv3 和 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.1 | Distributor 和 Redistributor | ||
| 2.2 | INTID | ||
| 2.3 | 亲和性路由 | ||
| 第 | 3 | 章 | GIC 分区 |
| 3.1 | GIC 逻辑组件 | ||
| 3.2 | 中断旁路支持 | ||
| 第 | 4 | 章 | 物理中断处理和优先级排序 |
| 4.1 | 中断生命周期 | ||
| 4.2 | Locality-specific Peripheral Interrupt | ||
| 4.3 | Private Peripheral Interrupt | ||
| 4.4 | Software Generated Interrupt | ||
| 4.5 | Shared Peripheral Interrupt | ||
| 4.6 | 中断分组 | ||
| 4.7 | 启用中断分发 | ||
| 4.8 | 中断优先级排序 | ||
| 第 | 5 | 章 | Locality-specific Peripheral Interrupt 和 ITS |
| 5.1 | LPI | ||
| 5.2 | Interrupt Translation Service | ||
| 5.3 | ITS 命令 | ||
| 5.4 | 通用 ITS 伪代码函数 | ||
| 5.5 | ITS 命令错误编码 | ||
| 5.6 | ITS 电源管理 | ||
| 第 | 6 | 章 | 虚拟中断处理和优先级排序 |
| 6.1 | 关于 GIC 对虚拟化的支持 | ||
| 6.2 | 操作概述 | ||
| 6.3 | VM 的配置和控制 | ||
| 6.4 | 伪代码 | ||
| 第 | 7 | 章 | GICv4.0 虚拟 LPI 支持 |
| 7.1 | 关于 GICv4.0 虚拟 Locality-specific Peripheral Interrupt 支持 | ||
| 7.2 | 虚拟中断的直接注入 | ||
| 第 | 8 | 章 | GICv4.1 虚拟中断支持 |
| 8.1 | 关于 GICv4.1 虚拟中断支持 | ||
| 8.2 | CPU interface 的变更 | ||
| 8.3 | ITS 命令 | ||
| 8.4 | vPEID 宽度 | ||
| 8.5 | 门铃 | ||
| 8.6 | vPE 驻留和定位数据结构 | ||
| 8.7 | 基于寄存器的 vLPI 失效 | ||
| 8.8 | vSGI 的直接注入 | ||
| 第 | 9 | 章 | 内存分区和监控 |
| 9.1 | 概述 | ||
| 9.2 | MPAM 和 Redistributor | ||
| 9.3 | MPAM 和 ITS | ||
| 9.4 | GIC 对 MPAM 的使用 | ||
| 9.5 | GICv4.1 数据结构和 MPAM | ||
| 第 | 10 | 章 | 连接到 Armv8-R AArch64 PE |
| 10.1 | Armv8-R AArch64 CPU interface 要求 | ||
| 第 | 11 | 章 | 电源管理 |
| 11.1 | 电源管理 | ||
| 第 | 12 | 章 | 程序员模型 |
| 12.1 | 关于程序员模型 | ||
| 12.2 | AArch64 系统寄存器描述 | ||
| 12.3 | 虚拟寄存器的 AArch64 系统寄存器描述 | ||
| 12.4 | AArch64 虚拟化控制系统寄存器 | ||
| 12.5 | AArch32 系统寄存器描述 | ||
| 12.6 | 虚拟寄存器的 AArch32 系统寄存器描述 | ||
| 12.7 | AArch32 虚拟化控制系统寄存器 | ||
| 12.8 | GIC Distributor 寄存器映射 | ||
| 12.9 | GIC Distributor 寄存器描述 | ||
| 12.10 | GIC Redistributor 寄存器映射 | ||
| 12.11 | GIC Redistributor 寄存器描述 | ||
| 12.12 | GIC CPU interface 寄存器映射 | ||
| 12.13 | GIC CPU interface 寄存器描述 | ||
| 12.14 | GIC 虚拟 CPU interface 寄存器映射 | ||
| 12.15 | GIC 虚拟 CPU interface 寄存器描述 | ||
| 12.16 | GIC 虚拟接口控制寄存器映射 | ||
| 12.17 | GIC 虚拟接口控制寄存器描述 | ||
| 12.18 | ITS 寄存器映射 | ||
| 12.19 | ITS 寄存器描述 | ||
| 12.20 | 伪代码 | ||
| 第 | 13 | 章 | 系统错误报告 |
| 13.1 | 关于系统错误报告 | ||
| 第 | 14 | 章 | 传统操作和非对称配置 |
| 14.1 | 中断和非对称配置的传统支持 | ||
| 14.2 | 非对称配置 | ||
| 14.3 | VM 传统操作的支持 | ||
| 附录 A | GIC Stream 协议接口 | ||
| A.1 | 概述 | ||
| A.2 | 信号和 GIC Stream 协议 | ||
| A.3 | GIC 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 profile 和 Arm[®] 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 也欢迎对新增和改进的一般建议。 前言 反馈