中断/gic代码导读:在哪里配置安全中断的?
思考:在哪里配置安全中断的? 在哪里配置中断的G0、G1NS、G1S分组的?
1、optee
在optee中有一段默认的配置,将0-7配置成G1NS,8-15配置成G1S,16-31配置成G1NS,32之后的也全部都是G1NS
但是这段配置不一定会被调用,gic_init()
由平台的main_init_gic()
函数调用,在大多数的场景下,gic_init()
是不会被调用的。
如下也只是列举了plat-rockchip
平台对gic_init()
的调用。
不过呢,在optee中新增一个中断时,会将该中断号配置成G1S
2、ATF
ATF软件中定义了三种类型的中断
- INTR_TYPE_S_EL1 //给secure EL1使用的中断,会设置成G1S
- INTR_TYPE_EL3 //给EL3使用的中断,会设置成G0
- INTR_TYPE_NS //给non-secure EL1使用的中断,会设置成G1NS
ATF中提供了一个API,可以设置中断的类型
plat_ic_set_interrupt_type(map->intr, INTR_TYPE_EL3);
(trusted-firmware-a/plat/common/plat_gicv3.c)void plat_ic_set_interrupt_type(unsigned int id, unsigned int type)
{gicv3_set_interrupt_type(id, plat_my_core_pos(), type);
}
gicv3_set_interrupt_type()
的原型如下所示:
中断/gic代码导读:在哪里配置安全中断的?相关推荐
- PCIe学习笔记之MSI/MSI-x中断及代码分析
本文基于linux 5.7.0, 平台是arm64 1. MSI/MSI-X概述 PCIe有三种中断,分别为INTx中断,MSI中断,MSI-X中断,其中INTx是可选的,MSI/MSI-X是必须实现 ...
- Linux GIC代码分析
一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V ...
- Caffe代码导读(1):Protobuf例子
转载自: Caffe代码导读(1):Protobuf例子 - 卜居 - 博客频道 - CSDN.NET http://blog.csdn.net/kkk584520/article/details/4 ...
- Caffe代码导读(0):路线图
转载自: Caffe代码导读(0):路线图 - 卜居 - 博客频道 - CSDN.NET http://blog.csdn.net/kkk584520/article/details/41681085 ...
- STC89C52单片机红外遥控中断以及代码显示
目录 红外遥控简介 硬件电路 基本发送与接收 NEC通信协议 简单的叙述一下代码思路: 遥控建码 51单片机的外部中断 STC89C52的外部中断有两种触发方式: 下降沿触发和低电平触发 外部中断寄存 ...
- 【STM32CubeMx你不知道的那些事】第三章:STM32CubeMx串口配置(中断接收)
在嵌入式环境中,串口通信是必不可少的通信方式,这一章我们主要是讲解一下HAL库怎么应用串口外设做收发功能. 一.准备工作 1.使用我们第一章配置好工程文件.如图 2.明确原理图上面所需要的串口,这里我 ...
- stm32之配置串口中断服务函数
在学习51单片机的时候,配置串口中断服务函数,只需要查看串口中断的中断号,然后在编写中断服务函数的时候,在函数名后面加上中断号.而在stm32中,中断的数量较多,对于中断的管理也会稍微复杂一点,而且中 ...
- STM32时钟系统和TIMER配置(溢出中断/PWM)实例
目录: 1. STM32时钟系统 2. STM32的定时器典型配置之溢出中断 3. STM32的定时器典型配置之PWM输出 1. STM32时钟系统 (1)Clock tree 可以在官方手册(Stm ...
- 【STM32】外部中断实验代码详解
文章目录 main.c exit.c exit.h STM32 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的 19 个外部中断为: 线 0 ...
最新文章
- CrazePony飞行器--通信部分介绍【转】
- [JavaME]解决来电问题(Incoming Call)
- C标准库和glibc(C运行库)的关系
- Mysql清理binlog日志
- Android 蓝牙模块
- 《深入浅出MFC》学习笔记
- Windows系统管理和网络服务笔记生涯 源于BENET2.0课程(S2)
- (一) JAVA Swing:Swing快捷开发工具集-v0.01
- 电脑右下角,电脑右下角的小喇叭不见了怎么办【解决方法】
- 三国志2017服务器维护时间,《三国志2017》版本更新公告
- css3 gird布局
- CSS绘制形状(三角形、四分之一圆、半圆、圆、梯形、球体、菱形)
- 【蓝桥杯】大臣的旅费
- 京东API详情接口调用示例
- 【信息学奥赛一本通】1134:合法C标识符查
- 在南宁做网站找哪家好
- CAN详解--CAN与com口介绍
- 安装python+selenium
- 电灯开关-第12届蓝桥杯Scratch省赛2真题第1题
- Git/Github工作流 (workflow)
热门文章
- 数据中心供电有多重要,看看这件事就知道了
- opencv android黑屏,装好了OpenCVManager,开启了Camera权限,在手机上CameraFaceDetectionView无图像...
- Py之Xlrd:Xlrd简介、安装、使用方法(读取xlsx文件的shee表头名/总行数/总列数、每一行的内容、指定列的内容)之详细攻略
- Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
- 成功解决pandas读取文件中不读取第一索引列
- Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略
- ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现
- 成功解决AttributeError: module ‘tornado.web‘ has no attribute ‘asynchronous‘
- 成功解决ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
- 成功解决 将xgboost的plot_importance绘图时出现的f0、f1、f2、f3、f4、f5等改为对应特征的字段名