ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[ATF]-中断配置:SCR.FIQ/SCR.IRQ的配置详解

2021-06-21 15:03:54  阅读:346  来源: 互联网

标签:ATF FIQ target IRQ interrupt EL3 SCR


★★★ 个人博客导读首页—点击此处 ★★★

文章目录

1、ARMV8 SCR.FIQ/SCR.IRQ的bit位定义

在这里插入图片描述
意思就是说,如果SCR.IRQ=0,IRQ中断不会target到EL3,如果SCR.IRQ=1,则IRQ将会被target到EL3
同样FIQ也是如此,如果SCR.FIQ=0,FIQ中断不会target到EL3,如果SCR.FIQ=1,则FIQ将会被target到EL3

2、SCR.FIQ/SCR.IRQ的配置

那么SCR.FIQ/SCR.IRQ是在哪里配置的呢? 因为SCR只有SCR_EL3寄存器,只能在EL3级别操作.

在linux+optee的双系统环境下,SCR_EL3的IRQ和FIQ的比特位是在ATF中完成的,ATF对这部分配置的代码进行了封装,
如下代码所示,注册了一个cpu执行在non-secure时来响应一个secure中断的机制。传入的参数是INTR_TYPE_S_EL1和flag=0,
在该函数的底层,则会配置SCR.FIQ=1.
也就是说,当cpu跑在linux的时候,来了一个FIQ中断,此时FIQ将被target到EL3,即cpu跳转到VBAR_EL3 + fiq_offset

			/*
			 * Register an interrupt handler for S-EL1 interrupts
			 * when generated during code executing in the
			 * non-secure state.
			 */
			flags = 0;
			set_interrupt_rm_flag(flags, NON_SECURE);
			rc = register_interrupt_type_handler(INTR_TYPE_S_EL1,
						opteed_sel1_interrupt_handler,
						flags);

标签:ATF,FIQ,target,IRQ,interrupt,EL3,SCR
来源: https://blog.51cto.com/u_15278218/2931171

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有