gic
点金胜手秋离
a simple engneer
展开
-
armv64异常保存处理器状态流程(EL1 HW)
异常发生时,armv64首先要做的就是保存处理的当前状态:1)将当前处理器状态PSTATE保存在SPSR_EL1寄存器中2)将返回地址保存在ELR_EL1寄存器中3)设置处理器状态中的调试掩码位D、系统错误掩码位A、中断掩码位I和快速中断掩码位F禁止调试异常、系统错误异常、外部中断和快速中断4)将发生错误的原因保存在ESR_EL1寄存器中5)将同步异常的错误地址保存在FAR_EL1寄存器中7)如果处理器处于异常级别EL0则将异常级别提升到EL18)根据异常向量表基地址、生成异常的转载 2021-05-07 17:35:45 · 174 阅读 · 0 评论 -
LPI
概述LPI全称是Locality-specific Peripheral Interrupts(LPIs),GICv3有两种方式支持LPIs:1)使用ITS把从设备发送的EventID转换成LPI INTID2)直接转发LPI INTID到Redistributors(GICR_SETLPIR)如果一个实现支持LPIs,则默认至少需要支持8192个LPIs,因此每一个LPI的配置和pending信息都是以table的形式保存在memory中(不是寄存器中),这些tables的基地址保存在Re翻译 2021-04-22 15:24:45 · 1146 阅读 · 0 评论