具体,更多的信息,得看GIC spec以及arm spec。 ARM GIC(三) GICv2架构 ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理。 GICv2架构 GICv2,支持最大8个core。其框图如下图所示: 在GICv...
ICC_CTLR_EL3和ICC_CTLR_EL1的A3V表示cpu interface是否支持Aff3,而GICD_TYPER.A3V表示gic ip是否支持Aff3。 三、关于range selector的理解。 gicv3的spec对range selector的解释如下: gic3中,使用属性层次,来对CPU进行标识,这样可以精确的将中断发送指定的cpu。属性层次最高有4层,为aff3.aff2.aff1.aff0。
gicv3的spec对range selector的解释如下:gic3中,使用属性层次,来对CPU进行标识,这样可以精确的将中断...
gicv3架构中,没有强制,系统寄存器访问方式的寄存器,是不能通过memory-mapped方式访问的。也就是ICC, ICV, ICH寄存器,也是可以实现在gic内部,通过memory-mapped方式去访问。但是一般的实现中,是没有这样的实现的。 下图是ICC的系统寄存器,和memory-mepped方式寄存器的对应关系的一部分,更多的就要查看gicv3的spec。 那...
下图是ICC的系统寄存器,和memory-mepped方式寄存器的对应关系的一部分,更多的就要查看gicv3的spec。那么...
一、gicv3结构 下图是gicv3的架构。 包含了以下的组件: distributor:SPI中断的管理,将中断发送给redistributor redistributor:PPI,SGI,LPI中断的管理,将中断发送给cpu interface cpu interface:传输中断给core ITS:用来解析LPI中断 其中,cpu interface是实现在core内部的,distributor,redistributor,ITS是实现在gic内部的。
LPI,locality-specific peripheral interrupts。spec中,用了一章,来介绍这个LPI。 二、LPI介绍 LPI是一种基于消息的边沿中断。也就是,中断信息,不在通过中断线,进行传递,而是通过memory。gic内部,提供一个寄存器,当外设往这个地址,写入数据时,就往gic发送了一个中断。
比如在soc中,有多个外设的中断,共享同一个中断号。 2、寄存器banking 对于同一个gic寄存器地址,在不同的情况下,访问的是不同的寄存器。例如在secure和non-secure状态下,访问同一个gic寄存器,其实是访问的不同的gic的寄存器。具体,更多的信息,得看gic spec以及arm spec。
一、gicv3结构 下图是gicv3的架构。 包含了以下的组件: distributor:SPI中断的管理,将中断发送给redistributor redistributor:PPI,SGI,LPI中断的管理,将中断发送给cpu interface cpu interface:传输中断给core ITS:用来解析LPI中断 其中,cpu interface是实现在core内部的,distributor,redistributor,ITS是实现在gic内部的。
LPI,locality-specific peripheral interrupts。spec中,用了一章,来介绍这个LPI。 二、LPI介绍 LPI是一种基于消息的边沿中断。也就是,中断信息,不在通过中断线,进行传递,而是通过memory。gic内部,提供一个寄存器,当外设往这个地址,写入数据时,就往gic发送了一个中断。