GIC
文章平均质量分 78
linux解码者
熟悉linux存储相关。日拱一卒
展开
-
GICv3软件overview手册之GICv4对虚拟LPI的直接注入(2)
1. vPE和vINTID的映射EventID-DeviceID的合并被映射到vPE和vINTID。当EventID和DeviceID相同时使用VMAPI命令:VMAPI <DeviceID>,<EventID>,<Doorbell pINTID>,<vPE ID>当EventID和DeviceID不相同时使用VMAPTI命令:VMAPTI <DeviceID>,<EventID>,&...原创 2022-01-09 10:35:43 · 598 阅读 · 0 评论 -
GICv3软件overview手册之GICv4对虚拟LPI的直接注入(1)
GICv4增加对虚拟LPI(vLPI)中断的直接注入。该特性允许软件对ITS如何将物理event(EventID和DeviceID的合并)映射到虚拟中断。若中断的目标vPE正在运行,虚拟中断可以直接发送,而不需要先进入hypervisor。这减少了虚拟中断相关的频繁切换。1. Redistributor, vLPI状态和配置(1)GICR_VPROPBASER该寄存器设置虚拟LPI配置表的地址。由于物理LPI配置表,虚拟LPI配置表记录vLPI的配置。vLPI的配...原创 2022-01-08 16:50:55 · 1026 阅读 · 0 评论 -
GICv3软件overview手册之虚拟化
ARMv8-A 可选择支持虚拟化。GICv3也支持虚拟化。GICv3对虚拟化的支持包括:(1)CPU接口寄存器的硬件虚拟化;(2)虚拟化中断;(3)维护中断;NOTE: GIC架构不提供虚拟化Distributor,Redistributor和ITS。这些接口的虚拟化必须由软件处理。这不在本文档中描述。1. 术语Hypervisor创建,控制和调度虚拟机VM。一个虚拟机在功能上等于一个物理系统,包含一个和多个虚拟处理器。这些虚拟处理器包含一个或多个虚拟...原创 2022-01-08 11:36:18 · 1320 阅读 · 0 评论 -
GICv3软件overview手册之发送和接受SGI
SGI中断为软件产生中断,软件可以通过写中断控制器的寄存器触发该中断。1. 产生SGI在CPU接口中可以通过写SGI寄存器来产生一个SGI中断。下图为SGI寄存器的基本格式:(1)控制SGI IDSGI ID域控制产生哪个INTID。如之前章节描述,INTID 0~15用于SGI(2)控制目标IRM域(中断路由模式)控制SGI发送到哪个或哪几个PE。由两个选择:- IRM = 0...原创 2022-01-08 09:36:45 · 1144 阅读 · 0 评论 -
GICv3软件overview手册之中断处理(2)
1. 执行优先级&抢占PMR设置中断发给某个PE的最小优先级。GICv3架构存在执行优先级的概念。当PE应答一个中断时,它的执行优先级变成中断的。当PE写EOI寄存器时执行优先级返回之前的值。在CPU接口中执行优先级寄存器ICC_RPR_EL1报告当前执行优先级。当考虑抢占时执行优先级的概念非常重要。当更高优先级发送给已经在处理较低优先级中断的PE时,抢占产生。抢占增加了软件的复杂度,但低优先级的中断不能阻塞高优先级的中断。抢占图显...原创 2022-01-07 08:15:59 · 706 阅读 · 0 评论 -
GICv3软件overview手册之中断处理(1)
1.中断处于pending时发生什么之前章节描述了中断产生时中断是如何从inactive状态转换为pending状态。这通常是由于外设发送中断信号。当中断变成pending时,中断控制器决定是否将中断发送给连接的PE。中断控制器选择的PE依赖于下列设置:(1)Group使能之前的章节描述了INTID是如何赋予一个group(Group0, 安全Group1或非安全Group1)。 对于每个Group,在Distributor和CPU接口中存在...原创 2022-01-04 22:59:37 · 966 阅读 · 0 评论 -
GICv3软件overview手册之配置GIC
本章描述了在裸设备环境下如何使能和配置GICv3中断控制器。对于详细的寄存器描述请查看ARM通用中断控制器用户手册。LPI的配置与配置SPI/PPI/SGI不一样,LPI的配置在其他章分开描述。使用GICv3中断控制器的大多数系统都是多核系统,并且可能多处理器系统。一些设置都是全局的,他们影响所有连接的PE。其他设置都是针对某个PE的。本章首先看全局设置,然后看基于PE的设置。1. 全局设置Distribut...原创 2022-01-03 09:32:01 · 2011 阅读 · 0 评论 -
GICv3软件overview手册之LPI(3)
RedistributorRedistributor通过内存中的表来对所有的物理LPI进行控制,优先级调节,pending信息控制。LPI的配置信息存放在内存的表中。LPI配置表由GICR_PROPBASER指向。LPI配置表是全局的,即所有的Redistributor必须看到相同的配置。典型的是一个系统有单独的由所有Redistributor共享的LPI配置表。类似的,LPI的状态信息存放在内存的表中。LPI pending表由GICR_PEND...原创 2022-01-02 10:37:42 · 624 阅读 · 0 评论 -
GICv3软件overview手册之LPI(2)
1. 将新命令添加到命令队列中为了将新命令添加到命令队列中,软甲需要:(1)写新命令到队列GITS_CWRITER指向命令队列中不包含有效命令的entry。软件必须将命令写入该entry,同时要保证此命令全局可见。(2)更新GITS_CWRITER软件必须更新GITS_CWRITER指向命令队列中不包含有效命令的entry。更新GITS_CWRITER通知ITS添加了新的entry。软件可以一次多个命令到命令队列,需要提...原创 2022-01-01 10:03:01 · 365 阅读 · 0 评论 -
GICv3软件overview手册之LPI(1)
1. ITS操作一个外设通过写ITS中的GITS_TRANSLATER来产生LPI。写操作提供给ITS如下信息:(1)EventID该值会写往GITS_TRANSLATER。EventID标识外设发送的是哪个中断。EventID可能与INTID一样,或通过ITS将INTID转换为EventID。(2)DeviceIDDeviceID标识外设。DeviceID的产生由实现定义的。ITS转换EventID,该EventID被...原创 2021-12-30 23:33:34 · 774 阅读 · 0 评论 -
GICv3软件overview手册之GICv3基本功能(5)
GICv3中断控制器的寄存器接口分为三组:(1)Distributor接口;(2)edistributor接口;(3)CPU接口;Distributor(GICD_*)Distributor寄存器由内存映射,包含影响所有的连接中断控制器的PE的全局设置。Distributor提供了编程接口:中断优先级和SPI的分发; 使能和禁止SPI; 对每个SPI设置优先级别; 对每个SPI的路由信息 设置每个SPI为电平敏感或边沿触发; 产生基...原创 2022-01-01 12:00:00 · 919 阅读 · 0 评论 -
GICv3软件overview手册之GICv3基本功能(4)
GICv3架构支持ARM trustZone技术。每个INTID都赋予给一个group和安全设置。GICv3支持三种合并,如表中所示: 中断类型 使用例子 Secure Group 0 EL3的中断(安全firmware) Secure Group 1 安全EL1的中断(Trusted OS) Non-secure Group 1 非安...原创 2021-12-31 19:00:00 · 501 阅读 · 0 评论 -
GICv3软件overview手册之GICv3基本功能(3)
GICv3使用亲和路由来区分连接的PE,让中断路由到某个PE或某一组PE。PE的亲和性由4个8bit域表示。<affinity level3>.<affinity level2>.<affinity level1>.<affinity level0>在affinity level0处是Redistributor。每个Redistributor连接到一个CPU接口上。Redistributor控制SGI,PPI和LPI...原创 2021-12-30 18:00:00 · 543 阅读 · 0 评论 -
GICv3软件overview手册之GICv3基本功能(2)
中断控制器对每个SPI/PPI/SGI中断源维护了一个状态机。状态机包含以下四种状态:(1)Inactive:中断源当前没有触发;(2)Pending:中断源被触发,但还未被PE应答;(3)Active:中断源被触发,且被PE应答;(4)Active and Pending: 中断被PE应答,但中断源另一实例进入Pending状态;NOTE: LPI没有active或active and pending状态。下图显示了状态机的结构以及可能的转换。...原创 2021-12-29 07:55:54 · 399 阅读 · 1 评论 -
GICv3软件overview手册之GICv3基本功能(1)
本章描述与GICV3架构兼容的中断控制的基本操作。它也会描述不同的编程接口。1. 中断类型GICV3定义了如下中断类型:(1)SPI共享外设中断这是一种全局外设中断,可路由到某个PE,或一组PE中的一个;(2)PPI私有外设中断这是一种只发往某个特定PE的外设中断。比如某个PPI是来自通用定时器的中断;(3)SGI软件产生中断SGI用于核间通信,它们通过往GIC的SGI寄存器中写操作而产生;(4)LPI特定位置的外设中断在GICV3中LPI是新增加的,...原创 2021-12-28 06:00:00 · 463 阅读 · 0 评论 -
GICv3软件overview手册之介绍
本文档提供了GICv3特性的软件overview,并且描述GICV3中断控制器的操作。它也只是如何在裸机环境下配置GICV3中断控制器的简介。本文档是ARM通用中断控制器架构手册V3.0和V4.0的简介。它不能代替这两文档。可以查阅这两文档了解更多详细的寄存器和行为。1. 范围GICV3允许很多不同的配置和使用。本文档只是作简单的介绍,且为所有使用的子集。它仅描述如下情况:(1)存在两种安全状态;(2)亲和路由在两种安全状态下使能;(3...原创 2021-12-27 22:48:50 · 750 阅读 · 0 评论