[gic]-linux和optee的中断处理流程举例(gicv3举例)

news2024/7/6 20:38:35

目录

        • 环境配置:
        • 说明:
        • 举例
          • 1、当cpu处于REE,来了一个非安全中断
          • 2、当cpu处于TEE,来了一个安全中断
          • 3、当cpu处于TEE,来了一个非安全中断
          • 4、当cpu处于REE,来了一个安全中断
          • 答疑
        • 推荐

本文转自 周贺贺,baron,代码改变世界ctw,Arm精选, armv8/armv9,trustzone/tee,secureboot,资深安全架构专家,11年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。

环境配置:

在linux/optee双系统环境下, linux系统的SCR.IRQ=0、SCR.FIQ=1, optee系统的SCR.IRQ=0、SCR.FIQ=0

说明:

group1是非安全中断、secure group1是安全中断

举例
1、当cpu处于REE,来了一个非安全中断

当cpu处于normal侧时,来了一个非安全中断,根据SCR.NS=1/中断在group1组,cpu interface将会给cpu一个IRQ,(由于SCR.IRQ=0,IRQ将被routing到EL1),cpu跳转至linux的irq中断异常向量表, 处理完毕后再返回到normal(linux)侧.

2、当cpu处于TEE,来了一个安全中断

当cpu处于secure侧时,来了一个安全中断,根据SCR.NS=0/中断在secure group1组,cpu interface将会给cpu一个IRQ,(由于SCR.IRQ=0,IRQ将被routing到EL1),cpu跳转至optee的irq中断异常向量表, 处理完毕后再返回到secure(optee)侧.
在这里插入图片描述

3、当cpu处于TEE,来了一个非安全中断

当cpu处于secure侧时,来了一个非安全中断,根据SCR.NS=0/中断在group1组,cpu interface将会给cpu一个FIQ,(由于SCR.FIQ=0,FIQ将被routing到EL1),跳转至optee的fiq中断异常向量表,
再optee的fiq处理函数中,直接调用了smc跳转到ATF, ATF再切换至normal EL1(linux), 此时SCR.NS的状态发生变化,根据SCR.NS=1/中断在group1组,cpu interface会再给cpu发送一个IRQ异常,
cpu跳转至linux的irq中断异常向量表,处理完毕后,再依次返回到ATF—返回到optee
在这里插入图片描述

4、当cpu处于REE,来了一个安全中断

当cpu处于normal侧时,来了一个安全中断,根据SCR.NS=0/中断在group1组,cpu interface将会给cpu一个FIQ,(由于SCR.FIQ=1,FIQ将被routing到EL3),在EL3(ATF)中,判断该中断是需要optee来处理的,会切换到optee。
此时SCR.NS的状态发生变化,根据SCR.NS=0/中断在secure group1组,cpu interface会再给cpu发送一个IRQ异常,cpu跳转至optee的irq中断异常向量表, 处理完毕后再依次返回到ATF—返回到linux
在这里插入图片描述

答疑

[答疑]-中断流程举例:在REE(SCR.FIQ=1)侧时产生了FIQ,跳转到EL3后做了哪些事情?
[答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ?


推荐
  • ARMv8/ARMv9架构从入门到精通 --博客专栏
  • 《Armv8/Armv9架构从入门到精通 第二期》 --大课程
  • 8天入门ARM架构 --入门课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程

目录 0 专栏介绍1 什么是机器人操作系统?2 ROS的发展历程3 ROS2与ROS1的区别4 ROS2安装4.1 基本安装4.2 测试ROS24.2.1 测试一:发布者与订阅者4.2.2 测试二:海龟仿真器 5 常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌…

凌鲨开发容器架构

开发容器是基于docker的快速开发搭建方案,在开发容器里面集成了asdf包管理系统和code server ide服务。 这个项目是开源的。 开发容器启动流程 #mermaid-svg-VJYq3izhUZRJA4Eq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fil…

java之mybatis

准备工作 上面4步骤 XML映射文件 动态SQL

git分布式管理-头歌实验冲突处理、忽略文件

一、解决冲突 任务描述 在团队协作开发过程中,可能你和团队中的其他成员,都修改了某个文件的某一部分内容,且其他成员已将该修改推送到了远程仓库。这样当你需要合并他的代码的时候,可能就会在内容上出现冲突,这个时候…

vue之性能优化

1.路由懒加载 所谓路由懒加载,其实就是路由通过import动态引入,而不是在文件最上面一个个全部引入,因为JS执行的时候会优先执行引入的文件,如果一次性引入过多,则会增加处理时长。 2.图片懒加载 图片在网页加载过程…

【CSS】简单的抽屉面板展开收起自然过渡效果的css

目录 效果展示css固定梯形按钮至抽屉面板中间梯形按钮css过渡动画 效果展示 1.收起时点击蓝色梯形按钮展开 2. 展开时点击蓝色按钮收起 3.展开收起时需要过渡自然,有抽屉推拉效果 css 固定梯形按钮至抽屉面板中间 .toggle{ position: absolute;left:-21px;top…

okcc呼叫中心的客服代表应该具备哪些条件?

对每个企业管理者来说,选择最高效和最理想的呼叫中心提供商来简化他们的客户服务操作是一项关键工作内容。除了要确保提供商拥有处理这一重要任务所需的技术和资源之外,确定他们是否具备最高质量的合适人员来执行这项任务同样很重要。 客户服务代表是每…

管理 PostgreSQL 中配置参数的各种方法

管理 PostgreSQL 中配置参数的各种方法 1. 概述 PostgreSQL提供了一个配置文件 postgresql.conf 让用户自定义参数。您可能需要更改一些参数来调整性能或在工作环境中部署 PostgreSQL 服务器。在这篇博文中,我们将探索管理这些参数的不同方法。 2. 以不同方式管理…

mysql的索引、事务、分库分表问题

1.了解MySQL的索引吗?它为什么使用Btree作为底层,而不是其他呢? 这里我们要谈的是其他数据结构的缺点,然后说说Btree的优点,也就看你对MySQL的Btree与其他数据结构熟不熟悉。 Hash (1)Hash 索引…

Django高级之-缓存

Django高级之-缓存 一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务…

解决QT cc1plus.exe: error: out of memory allocating

QT中增加资源文件过大时,会编译不过,报错: cc1plus.exe: out of memory allocating 1073745919 bytes 使用qrc资源文件,也就是在QT的工程中添加资源文件,就是添加的资源文件(如qrc.cpp)会直接被…

MySQl基础入门⑦

上一章知识内容 分析数据且区分数据类型 看下表分析数据的特征,根据其特征确定相应的数据类型。 分析以上表格特征,确定数据类型,并对数据进行分类。分析数据后按固定长度字符串、可变长度字符串、整数、固定精度小数和日期时间数据类型对数…

Find My游戏机|苹果Find My技术与游戏机结合,智能防丢,全球定位

游戏机,又名电子游乐器是使用游戏软件进行玩乐的机器。依照进行游戏的方式的不同,又分为家用游戏机及掌上游戏机。游戏机也可以说是属于电脑的一种,电子游戏机针对影像、音效与操作机能进行特别的强化,也有各种的软件和硬件可供安…

第108讲:Mycat实践指南:枚举分片下的水平分表详解

文章目录 1.枚举分片的概念2.水平分表枚举分片案例2.1.准备测试的表结构2.2.配置Mycat实现枚举分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分片规则配置文件2.2.3.配置Server配置文件2.2.4.重启Mycat 2.3.写入数据观察水平分表效果 1.枚举分片的概念 枚举分片是根据…

物联网智慧大屏

随着物联网技术的飞速发展,物联网智慧大屏已经成为企业数字化转型的关键组件。那么,什么是物联网智慧大屏?它为企业带来了哪些价值?让我们一起来探索。 一、什么是物联网智慧大屏? 物联网智慧大屏,作为物联…

css flex 布局换行

默认使用display: flex;是不换行的,只需要加上flex-wrap: wrap;就行了,效果图 .app-center {display: flex;flex-wrap: wrap;justify-content:flex-start; } 通过上面我们发现虽然时间换行了,但是每行的边距不一样 加上这个就行了&#xff…

国创证券今日投资参考:金价持续走高 半导体迎新一轮上升周期

上周五,两市股指早盘止跌回升,午后强势上扬,深成指、创业板指、科创50指数盘中均涨超1%;截至收盘,沪指涨0.62%报3046.02点,深成指涨1.1%报9369.05点,创业板指涨0.97%报1807.29点,科创…

【牛客】VL68 同步FIFO

描述 请设计带有空满信号的同步FIFO,FIFO的深度和宽度可配置。双口RAM的参考代码和接口信号已给出,请在答案中添加并例化此部分代码。 电路的接口如下图所示。端口说明如下表。 接口电路图如下: 双口RAM端口说明: 端口名I/O描述…

使用IDEA远程Debug调试

文章目录 背景配置IDEA设置启动脚本改造 细节细节1:停在本地断点,关闭程序后会继续执行吗?细节2:jar包代码和本地不一致会怎么样?细节3:日志打印在哪里?细节4:调试时其他人会不会卡住&#xff…