ARM GIC(十四)gicv3架构-power控制详解
在带有gicv3的soc架构中,其框图如下所示:gicv3中的redistributor与core中的cpuinterface通过AXI-Stream进行通信。一、connection当core上电之后,需要将core中cpuinterface与gic中的redistributor进行connect,这样将来gic才可以将中断发送给core。connection的流程如
发表于 1/3/2019 1:41:52 PM
阅读(2196)
ARM GIC(十三) 波形为例,介绍gic600与cpu interface通信
以下以gic600与cpuinterface之间传递的包,来说明,他们之间是如何通信的。这里以波形进行介绍。这样比较直观。一、downstreamcontrol命令包gic600发送downstreamcontrol命令包给cpuinterface。命令包的数据为0。downstreamcontrol包格式如下:解释如下:从表中可以解析
发表于 12/7/2018 9:38:34 PM
阅读(2710)
ARM GIC(九) gicv3架构-two secure state
gicv3中,引入了支持2种安全状态(securestate),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。一、中断线的映
发表于 11/20/2018 12:40:43 PM
阅读(2354)
jenkins pipeline取消groovy脚本执行权限
在上一篇文章中(http://www.lujun.org.cn/?p=4025),提到了,如何在jenkins的pipeline中控制并行执行的job数。其中用到了groovy脚本。在job的配置中,是不能勾选usegroovysandbox选项,否则执行会出错。查看这个usegroovysandbox的作用:ifchecked,runthisgroovyscrip
发表于 11/15/2018 12:50:35 PM
阅读(3369)
Jenkins pipeline控制并行执行job个数
pipeline中,可以通过parallel,并行跑多个job。但是如果想限制并行跑的job个数,应该如何做呢?比如说有10个job,要并行跑,但是目前资源有限,只允许最多3个同时跑,那这种情况下,应该如何修改Jenkinsfile,来满足这个需求?通过自己的摸索,发现用以下方法,可以实现
发表于 11/14/2018 12:07:39 PM
阅读(4639)
AArch32中thumb指令的IT block
ITblock是thumb指令集中引出来的东西,用来解决thumb指令不能条件执行的缺点。可以通过IT指令,给后续的1到4条指令,决定其执行条件。ITblock的信息,存放在PSTATE中,在thumb指令集中,也就是存在CPSR中。存放在CPSR的IT域。IT指令的指令编码如下:其汇编描述:firstco
发表于 11/7/2018 6:06:55 PM
阅读(1389)
GICv3软中断
软中断(softwaregeneratedinterrupts),用来多个核之间的通信(inter-processorcommunication)。软件通过写SGI寄存器来产生。软件写ICC_SGI1R_EL1产生对应当前secure状态的group1软中断软件写ICC_ASGI1R_EL1产生secure状态的group1软中断软件写ICC_SGI0R_EL1产生secu
发表于 10/16/2018 1:24:06 PM
阅读(2116)
gicv3的中断分组
GICv3架构中,对中断进行了分组。分成了以下三个组:group0,用于EL3处理的中断securegroup1:用于secureEL1处理的中断non-securegroup1:用于non-secure的EL2和non-secure的EL1。对于redistributor的set命令,带有Mod和Grp参数。Mod与Grp共同表示,中断所属的组。其组
发表于 10/15/2018 6:39:45 PM
阅读(1935)
ARM编译器(一)ARM汇编与ARM GNU汇编
一、ARM汇编开发的两种的方式ARM汇编开发指用ARM提供的汇编指令,进行ARM程序的开发。ARM汇编开发,有两种开发方式,一种是使用ARM汇编,一种是使用ARMGNU汇编。两种汇编开发,使用的汇编指令是完全一样的,区别是宏指令,伪指令,伪操作不一样。其实两种开发方式的区别
发表于 8/11/2018 1:13:46 PM
阅读(4197)
ARM GIC(八)总结
GIC,是arm为了实现复杂的中断控制,而定义的一套架构。版本也历经了多个变化,从最初的GICv1到现在最新的GICv4。每一个新的版本,都增加了一些新的功能。目前最新的GIC-600IP,支持GICv4。不过从GICv3开始,架构就和之前的架构,变化就比较大了。一、变化一:cpuinterf
发表于 7/29/2018 4:09:47 PM
阅读(3260)
ARM GIC(七)gicv3架构-power控制
从gic3开始,cpuinterface放到了PE中,因此cpuinterface和PE是同一个powerdomain。而属于gic的其他组件,如redistributor,distributor,是另外一个powerdomain。因此就有如下一种情况,PE和cpuinterface的电源给断掉了,而gic的电源并没有断掉。此时gic给cpuinterface
发表于 7/29/2018 3:35:47 PM
阅读(1623)
ARM GIC(六)gicv3架构-LPI
在gicv3中,引入了一种新的中断类型。messagebasedinterrupts,消息中断。一、消息中断外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。这样的一个好处是,可以减少中断线的个数。为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且
发表于 7/29/2018 2:53:03 PM
阅读(5578)
ARM GIC(五)gicv3架构-gic stream协议
gicstream协议,是基于AXI-stream协议。用于gic的IRI组件(interruptroutinginfrastructure),和cpuinterface之间,传输信息。distributor,redistributor和ITS,统称为IRI组件。gicstream协议,包含以下2个接口:下行AXI-stream接口:用于IRI向cpuinterface传递信息,
发表于 7/22/2018 4:34:11 PM
阅读(3399)
ARM GIC(四) gicv3架构基础
GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下:使用属性层次(affinityhierarchies),来对core进行标识,使gic支持更多的core将cpuinterface独立出来,用户可以将其设计在core内部增加redistributor组件,用来连接distributor和cpuinterface增加了LPI
发表于 7/22/2018 3:04:18 PM
阅读(3455)