SDEI (Software Delegated Exception Interface) 软件委托异常接口
1. 简介
system events是一个高优先级事件,必须由操作系统或hypervisor程序立即来完成,即使操作系统在其自己的临界区中执行(中断被屏蔽),系统事件可用于:
Platform error handling (RAS) 系统错误处理
在任何时候,PE、内存或系统总线都可能产生错误。这些错误中的一部分可以在软件中纠正,并且可能需要不同的执行权限。固件优先处理Firmware first是一种常见的错误处理方法,其中更高的异常级别EL3提供初始错误处理,之后错误被委托给较低的异常级别EL2/EL1。
Software watchdog timer 软件看门狗定时器
高优先级事件可用于实现软件看门狗定时器。
Sample based profiling 采样分析
基于样本的分析对于那些屏蔽中断的临界区可能存在盲点。高优先级的基于事件的分析器可以消除这种盲点。
Kernel debugger 内核调试
调试系统软件通常涉及检查执行路径、寄存器、和内存。软件调试经常受到中断屏蔽的影响,因为它可能会阻止调试器中断PE。带优先级的事件,即使系统处于临界区,也可以检查系统的状态。
The Software Delegated Exception (SDE)是一个可以抢占其它异常和独占机制,用来把特殊系统事件system events传递给操作系统(或hypervisor)的机制。Firmware收到system events后,使用SDEI通知Non-secure world,并执行注册好的handler
当一个异常需要不受中断屏蔽和临界区延迟的传递时,应使用 SDEI 而不是普通中断,就像上面的几个例子一样。
SDEI 提供了高优先级的事件传递机制,其优先级高于目标操作系统和hypervisor的中断。SDEI可以支持OS或/和hypervisor进行如下操作:
- 订阅并处理系统事件。
- 屏蔽系统事件。
- 将系统事件的处理迁移到不同的 PE。
- 添加或删除参与事件处理的 PE。
- 将现有中断转换为 SDEI 事件源。
- 生成软件事件。
注意:SDEI只使用system event管理,不适用设备中断处理。
2. SDEI 相关术语
- RAS:Reliability, Availability, and Serviceability
- SDEI: Software Delegated Exception Interface 软件委托异常接口
- SDEI dispatcher:处理来自client的请求并向其委托事件
- SDEI client:使用dispatcher提供的接口注册处理程序,接收事件通知并处理事件
3. SDEI 事件调度
SDEI事件调度有两种方式:
- 中断触发事件,由绑定到SDEI事件的中断触发
- 显式分配事件,由SDEI dispatcher调用sdei_dispatch_event() API将事件分配到SDEI client处理
中断触发事件调度
初始化阶段,SDEI客户端绑定一个非安全中断,SDEI调度程序返回一个平台动态事件编号。然后客户端为该事件注册一个处理程序并启用该事件,取消屏蔽当前PE上的所有事件。
当绑定的中断发生时,它会被trapped到EL3中,中断被移交给SDEI调度程序,然后分配执行客户端注册好的处理程序,执行完成后,客户端调用SDEI_EVENT_COMPLETE接口结束事件处理,恢复到事件发生前的程序继续执行。
显式分配事件调度
初始化阶段,SDEI 客户端为平台事件注册一个处理程序,启用事件,并取消屏蔽当前PE的所有事件。
与中断触发事件SDEI调度不同的是,这里不涉及中断绑定,因为绑定的或动态事件不能被显式调度,显式调度的事件应该是系统预先定义好的。
当关键事件发生(比如在接收到SError或同步外部中止时(SError or Synchronous External Abort))时会被trapped到EL3, EL3 执行事件的第一级分类并分配给RAS 组件承担进一步处理,RAS处理后需要非安全世界参与进一步处理,因此决定显式分派一个事件(客户端已经注册了该事件),于是调用sdei_dispatch_event API由SDEI调度程序分配执行客户端注册好的处理程序,将请求的事件分派给客户端处理,当处理程序完成时,恢复被抢占的执行程序。
4. 参考
TF-A SDEI: Software Delegated Exception Interface
ARM_DEN0054A_Software_Delegated_Exception_Interface
SDEI (Software Delegated Exception Interface) 软件委托异常接口相关推荐
- 13-SDEI: Software Delegated Exception Interface
引流关键词: 中断.同步异常.异步异常.irq.fiq.BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33, ...
- SDK(Software Development Kit, 即软件开发工具包 )
SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合 SDK是一些被软件 ...
- dll domodal运行时异常_软件运行异常时的多种排查思路与方法
软件发生异常,排查起来毫无头绪和思路时,该怎么办呢?结合多年的开发经验,我来告诉你们几个常用的方法,不妨用这些方法去试一试!希望能帮到你们. 1.通过安装软件不同时间的版本对比一下 这个方法有点笨,但 ...
- BSD:Berkeley Software Distribution,伯克利软件套件
目录 BSD简介 许可协议 开源项目 BSD分区概述 BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯 ...
- 软件_git异常错误[博]
原创博客地址:软件_git异常错误[博] 删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法 ...
- OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常 参考文章: (1)OpenCV imread读取图片,imshow展示 ...
- trycatch 不能捕获运行时异常_软件运行异常时的多种排查思路与方法
软件发生异常,排查起来毫无头绪和思路时,该怎么办呢?结合多年的开发经验,我来告诉你们几个常用的方法,不妨用这些方法去试一试!希望能帮到你们. 1.通过安装软件不同时间的版本对比一下 这个方法有点笨,但 ...
- exception 类 java_Java 常见异常种类
1.什么是异常 结构不佳的代码不能运行,这是Java的基本理念. 发现错误的理想时机是在编译期.然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决.这就需要错误能通过某种方式,把适当的 ...
- 解决win10用户权限导致软件启动异常问题
解决win10用户权限导致软件启动异常问题 前段时间因为双硬盘都是win10,切换启动导致其中一个操作系统的'c:/'用户文件目录权限改变,OneNote 报告"缓存文件没有权限,启动异常& ...
最新文章
- UUID的使用及其原理
- 为什么需要权重初始化(weight initialization)?常见的权重初始化方式有哪些?启发式权重初始化的好处?
- 开源网络备份软件bacula数据恢复(二)
- 60+ 实用 React 工具库,助力你高效开发!
- java恐怖游戏_分享个经典恐怖游戏系列
- 线程:信号量 sem_wait sem_post
- NYOJ399 - 整除个数
- 自己选择的路,不后悔
- Selenium3笔记-WebDriver源码初探
- Routerboard/DR4019S-Qualcomm-IPQ4019-2T2R-Dual-Band-2-4GHz-5GHz-support-OpenWRT-802.11ac-Wave-2.
- 大工20春《计算机应用基础》在线测试,大工20春《计算机应用基础》在线测试1...
- matplotlib绘制风能玫瑰图
- 故障树FTA(fault tree analysis)工具链
- Python: 计算百分比
- 2017东北四省赛G题
- python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
- BaseAdapter notifyDataSetChanged()
- 一页两个uEdit编辑器写法记录
- [代码积累]解决HL7协议、TCP/IP通讯、16进制转字符串,中文乱码的问题。
- 2010计算机软件二级考试,2010年全国计算机等级考试全攻略
热门文章
- 阿里云服务器搭建python web环境_《Python入门》Linux 下 Python Web开发环境搭建笔记-阿里云开发者社区...
- 计算机应用基础一 b卷答案,计算机应用基础试题(2004年) B卷(无答案)
- 用户研究如何获取更为真实的用户信息
- fvwm-themes的应用
- 深度学习AI克隆人声模型
- mmap()函数参数详解
- java jsoup抓取百度图片保存到本地,并压缩到指定大小(可指定宽高或者流大小)
- 下载Dubbo源码包打包安装Dubbo-admin
- 我的苹果开发帐号(公司型)成功申请经历——不用传真营业执照、免费获取邓白氏编码
- PO VO DTO 转换神器替代BeanUtils 了