一、Bl31中断处理流程概述
中断处理需要软件和硬件配合完成,GICv3根据中断分组情况以及系统当前运行的异常等级确定中断是以IRQ还是FIQ触发。
CPU通过设置SCR_EL3.IRQ和SCR_EL3.FIQ确定IRQ和FIQ中断分别是被路由到当前异常等级还是被路由到EL3。
若中断被路由到EL3,根据异常发生时系统所处的异常等级,使用的栈指针是SP_EL0还是SP_ELx(x> 0),以及使用的aarch32还是aarch64架构,在每个异常等级下都包含了四张异常等级表。以上具体的中断的路由规则可参考博文:【armv8中断路由机制】
bl31的异常向量表定义在runtime_exceptions.S中,其与下图的定义一致。
但在ATF中只实现了后面两种情形下的中断处理函数,即若当前系统运行在EL3下,则不允许异常发生

本文详细介绍了在ARM开发中,ATF(Trusted Firmware-A)如何处理GICv3的FIQ中断。内容涵盖中断处理流程概述,包括硬件中断路由和异常等级管理。特别地,文章以FIQ中断为例,阐述了从保存环境、执行中断处理流程到ehf框架的详细步骤,解析了bl31中非重入异常处理函数的工作原理。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



