思考:在哪里配置安全中断的? 在哪里配置中断的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代码导读:在哪里配置安全中断的?相关推荐

  1. PCIe学习笔记之MSI/MSI-x中断及代码分析

    本文基于linux 5.7.0, 平台是arm64 1. MSI/MSI-X概述 PCIe有三种中断,分别为INTx中断,MSI中断,MSI-X中断,其中INTx是可选的,MSI/MSI-X是必须实现 ...

  2. Linux GIC代码分析

    一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V ...

  3. Caffe代码导读(1):Protobuf例子

    转载自: Caffe代码导读(1):Protobuf例子 - 卜居 - 博客频道 - CSDN.NET http://blog.csdn.net/kkk584520/article/details/4 ...

  4. Caffe代码导读(0):路线图

    转载自: Caffe代码导读(0):路线图 - 卜居 - 博客频道 - CSDN.NET http://blog.csdn.net/kkk584520/article/details/41681085 ...

  5. STC89C52单片机红外遥控中断以及代码显示

    目录 红外遥控简介 硬件电路 基本发送与接收 NEC通信协议 简单的叙述一下代码思路: 遥控建码 51单片机的外部中断 STC89C52的外部中断有两种触发方式: 下降沿触发和低电平触发 外部中断寄存 ...

  6. 【STM32CubeMx你不知道的那些事】第三章:STM32CubeMx串口配置(中断接收)

    在嵌入式环境中,串口通信是必不可少的通信方式,这一章我们主要是讲解一下HAL库怎么应用串口外设做收发功能. 一.准备工作 1.使用我们第一章配置好工程文件.如图 2.明确原理图上面所需要的串口,这里我 ...

  7. stm32之配置串口中断服务函数

    在学习51单片机的时候,配置串口中断服务函数,只需要查看串口中断的中断号,然后在编写中断服务函数的时候,在函数名后面加上中断号.而在stm32中,中断的数量较多,对于中断的管理也会稍微复杂一点,而且中 ...

  8. STM32时钟系统和TIMER配置(溢出中断/PWM)实例

    目录: 1. STM32时钟系统 2. STM32的定时器典型配置之溢出中断 3. STM32的定时器典型配置之PWM输出 1. STM32时钟系统 (1)Clock tree 可以在官方手册(Stm ...

  9. 【STM32】外部中断实验代码详解

    文章目录 main.c exit.c exit.h STM32 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的 19 个外部中断为: 线 0 ...

最新文章

  1. CrazePony飞行器--通信部分介绍【转】
  2. [JavaME]解决来电问题(Incoming Call)
  3. C标准库和glibc(C运行库)的关系
  4. Mysql清理binlog日志
  5. Android 蓝牙模块
  6. 《深入浅出MFC》学习笔记
  7. Windows系统管理和网络服务笔记生涯 源于BENET2.0课程(S2)
  8. (一) JAVA Swing:Swing快捷开发工具集-v0.01
  9. 电脑右下角,电脑右下角的小喇叭不见了怎么办【解决方法】
  10. 三国志2017服务器维护时间,《三国志2017》版本更新公告
  11. css3 gird布局
  12. CSS绘制形状(三角形、四分之一圆、半圆、圆、梯形、球体、菱形)
  13. 【蓝桥杯】大臣的旅费
  14. 京东API详情接口调用示例
  15. 【信息学奥赛一本通】1134:合法C标识符查
  16. 在南宁做网站找哪家好
  17. CAN详解--CAN与com口介绍
  18. 安装python+selenium
  19. 电灯开关-第12届蓝桥杯Scratch省赛2真题第1题
  20. Git/Github工作流 (workflow)

热门文章

  1. 数据中心供电有多重要,看看这件事就知道了
  2. opencv android黑屏,装好了OpenCVManager,开启了Camera权限,在手机上CameraFaceDetectionView无图像...
  3. Py之Xlrd:Xlrd简介、安装、使用方法(读取xlsx文件的shee表头名/总行数/总列数、每一行的内容、指定列的内容)之详细攻略
  4. Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
  5. 成功解决pandas读取文件中不读取第一索引列
  6. Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略
  7. ML之分类预测:机器学习中多分类预测数据集可视化(不同类别赋予不同颜色)设计思路及代码实现
  8. 成功解决AttributeError: module ‘tornado.web‘ has no attribute ‘asynchronous‘
  9. 成功解决ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
  10. 成功解决 将xgboost的plot_importance绘图时出现的f0、f1、f2、f3、f4、f5等改为对应特征的字段名