0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

gic的寄存器 gicv3的LPI中断

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-11-08 16:09 次阅读

(1)gicv2的寄存器

gicv2寄存器,都是使用memory-mapped的方式去访问的

• ◾GICD_: distributor的寄存器

• ◾GICH_: 虚拟interface的控制寄存器

• ◾GICV_:虚拟interface的控制寄存器

• ◾GICC_: 虚拟cpu interface的寄存器

1-Distributor register

在这里插入图片描述

0x100-0x17C — 》 GICD_ISENABLERn

这个地址范围内一共可以表示32个32bit的寄存器(n=0x7c/4+1)

所以n的值为0-31,共可以表示32*32=1024个中断

提供了2种访问方式:

• 一种是memory-mapped的访问

• 一种是系统寄存器访问

gicv3的LPI中断

• ◾在gicv3中,引入了一种新的中断类型。message based interrupts,消息中断 外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。这样的一个好处是,可以减少中断线的个数,为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且为他分配了特别多的中断号,从8192开始,移植到16777216

• LPI的中断的配置,以及中断的状态,是保存在memory的表中,而不是保存在gic的寄存器中的。

• ◾GICR_PROPBASER:(64bit)保存LPI中断配置表的基地址

• ◾GICR_PENDBASER: (64bit)保存LPI中断状态表的基地址

• 当外部发送LPI中断给redistributor,redistributor首先要查该表,也就是要访问memory来获取LPI中断的配置。为了加速这过程,redistributor中可以配置cache,用来缓存LPI中断的配置信息

• 因为有了cache,所以LPI中断的配置信息,就有了2份拷贝,一份在memory中,一份在redistributor的cache中。如果软件修改了memory中的LPI中断的配置信息,需要将redistributor中的cache信息给无效掉。

• LPI实现的两种方法:

• ◾使用ITS,将外设发送到eventID,转换成LPI 中断号

• ◾forwarding方式,直接访问redistributor的寄存器GICR_SERLPIR,直接发送LPI中断

gicv2的bypass功能

GICv2支持中断旁路模式,也就是gic外部的FIQ,IRQ直接接到core的FIQ,IRQ上,相当于gic是不使能的。也就是CFGSDISABLE是有效的,将GIC给无效掉。

gicv2支持bypass功能,这样gic就不起作用了,core的中断管脚,直接由soc的其他部门信号驱动。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5036

    浏览量

    117763
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41028
  • LPI
    LPI
    +关注

    关注

    0

    文章

    2

    浏览量

    5391
收藏 人收藏

    评论

    相关推荐

    ARM GIC(一)之ARM soc中断的处理介绍

    优先级中断,发送给CPU。当CPU接受到gic发送的中断,通过读取gic寄存器,就可以知道,中断
    发表于 04-06 10:12

    ARM GIC(四) 之GICv3架构基础知识介绍

    寄存器访问方式,实现在core的内部?这样做,是有什么好处?我认为,gicv3的上述安排,第一是为了软件编写能够简单,通用,第二是为了让中断响应能够更快。首先要先了解,在gic
    发表于 04-06 10:33

    ARM GIC(五)关于gicv3架构的gic stream协议解析

    interface给redistributor,回clear acknowledge响应。◾如果此时,cpu读取IAR寄存器,CPU会获取到一个假的中断号。3、两个中断redistr
    发表于 04-07 10:42

    ARM GIC(六)gicv3架构中的消息中断

    gicv3中,引入了一种新的中断类型。message based interrupts,消息中断。一、消息中断外设,不在通过专用中断线,向
    发表于 04-07 10:50

    ARM GIC(八)GICv3架构的变化

    memory-mapped方式访问。下图是GICv3架构,cpu interface从gic内部剥离,实现在PE的内部。并且将cpu interface的寄存器,提供了系统寄存器访问方
    发表于 04-07 10:59

    ARM GIC(九)GICv3架构中的中断分组

    GICv3架构中,对中断进行了分组。分成了以下三个组:◾group0,用于EL3处理的中断◾secure group1:用于secure EL1处理的
    发表于 04-08 10:00

    ARM GIC(十) GICv3中断的相关介绍

    的group0软中断这三个寄存器的位域是一样的,如下图:◾Aff3.Aff2.Aff1:表示软中断目的CPU的属性层次。◾TargetList:表示要发给哪些CPU。◾INTID:表示
    发表于 04-08 10:04

    ARM GIC(十一) gicv3架构中的2种安全状态

    是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。一、中断线的映射当gic架构,使用
    发表于 04-08 10:07

    ARM GIC(十二) GICv3支持中断bypass功能

    外部发送的中断。在gicv3架构描述中,提到了中断bypass功能,会受到下面几个配置的影响:一个是,是否运行系统寄存器访问icc寄存器,也
    发表于 04-08 10:10

    有关ARM GICv3中断控制器的相关知识介绍

    )LPIGICv3中的新特性,它们在很多方面与其他类型的中断不同。LPI始终是基于消息的中断,它们的配置保存在表中而不是
    发表于 05-26 16:35

    Arm通用中断控制器GICv3GICv4对虚拟化的支持

    体系结构规范GIC体系结构版本3和4详细说明寄存器和行为的描述。 在本指南的最后,您将能够: •列出生成虚拟中断的不同方式。 •为软件在CPU接口内管理
    发表于 08-02 10:43

    Arm通用中断控制器GICv3/v4详解

    本指南介绍了在GICv3/v4。 中断是向处理发出的一个信号,表示发生了需要处理的事件 具有中断通常由外围设备产生。LPI通常用于产生消息
    发表于 08-02 09:20

    GICv3GICv4软件概述

    本文档以软件为重点概述了GICv3的功能,并描述了符合GICv3标准的中断控制器的操作。 它也是关于如何配置GICv3中断控制器以在裸机环境
    发表于 08-22 08:24

    gicv2与gicv3的区别

    一、gicv2与gicv3 但是在gicv3之前一直都是使用的giv2,这两者有什么区别? 最近在做实验室的版本兼容,很我一直以为这个gicv2和g
    的头像 发表于 11-07 17:54 408次阅读

    gic和ARM Core的连接

    • ◾nVIRQ: 虚拟普通中断 • ◾nVFIQ: 虚拟快速中断 (2)gicv3和ARM Core的连接 gicv3 AXI-stream协议 • ◾
    的头像 发表于 11-07 18:07 306次阅读
    <b class='flag-5'>gic</b>和ARM Core的连接