前言
前段时间不是在整gicv2吗?这个确实太老了。资料很少,但是gicv3的蛮多的,这里找到了一篇关于gicv3的中断的blog,我们一起来学习一下,相信通过前辈的文章一定有所收获,核心内存的内容链接我放在了文末。
ATF在bl31中提供了GICv3驱动加载、bl31的中断处理、异常等级切换时中断路由信息配置以及GICv3相关的电源管理功能,由于电源管理功能与中断处理流程关联不大,在本文中不做详细分析。下图为bl31中gic驱动和中断处理流程架构,其中平台相关部分代码都以arm common plat为例,如bl31 platform setup和gicv3 init是与平台相关的:
-
GICv3驱动加载流程主要实现了distributor、redistributor和cpu interface 三大组件相关资源的初始化,所有SPI、PPI和SGI中断属性的默认参数设置,以及需要在bl31中注册的中断属性设置等功能。
-
Bl31的中断处理实现了对路由到EL3的中断相关异常处理流程。
-
异常等级切换时bl31 负责设置cpu系统寄存器以配合GICv3实现将不同group的中断路由到正确的异常等级。(那么在gicv3he gicv2的