代码编织梦想

一、中断管理框架中的假设

该框架作出以下假设以简化其实现。

  • 1、尽管该框架支持2种类型的安全中断(EL3和secure-EL1中断),但只有Arm GICv3这样的中断控制器架构支持0组中断形式的EL3中断。在Arm GICv2中,假设所有安全中断都在secure-EL1中处理。它们可以通过EL3传送到Secure-EL1,但不能在EL3中处理。
  • 2、中断异常(PSTATE.I和F位)在EL3中执行期间被屏蔽。
  • 3、中断管理:以下部分描述中断处理框架如何管理中断。这需要:
    • 1、提供一个接口,允许注册一个处理程序,并指定一种中断类型的路由模型。
    • 2、实现支持在生成中断时将中断类型的控制交给其注册的处理程序。

中断管理的两个方面都涉及从EL3到secure-EL1的安全软件堆栈中的各种组件。软件组件一节介绍了这些组件。框架在以下数据结构中存储与每种类型的中断相关的信息。

typedef struct intr_type_desc {
        interrupt_type_handler_t handler;
        uint32_t flags;
        uint32_t scr_el3[2];
} intr_type_desc_t;

标志字段以位[1:0]存储中断类型的路由模型。当执行处于安全状态时,位[0]存储路由模型。当执行处于非安全状态时,位[1]存储路由模型。如节路由模型中所述,值0表示中断应以FEL为目标。值1表示它应该针对EL3。剩余的位被保留和SBZ。助手宏set_interrupt_rm_flag()应用于设置flags参数中的位。

scr_el3[2]字段还存储路由模型,但作为标志字段中的模型到每个安全状态的scr_el3中的对应位的映射。

该框架还依赖于平台端口来配置中断控制器以区分安全中断和非安全中断。平台应了解系统中存在的安全设备及其相关中断号。它应该配置中断控制器以启用安全中断,确保它们的优先级始终高于非安全中断,并将它们定向到主CPU。它还应该导出Porting Guide中描述的接口,以便能够处理中断。

在本文档的其余部分中,为了简单起见,考虑了Arm-GICv2系统,并假设FIQ信号用于生成Secure-EL1中断,而IRQ信号用于在任一安全状态下生成非安全中断。不考虑EL3中断。

二、软件组件

中断管理的角色和责任分为以下在EL3和Secure-EL1中运行的软件组件。下面简要介绍了每个组件。

  • 1、EL3运行时固件。此组件对TF-A的所有端口都是通用的。
  • 2、安全有效载荷调度器(SPD)服务。该服务与安全有效负载(SP)软件接口,该软件在Secure-EL1/Secure-EL0中运行,负责在安全和非安全状态之间切换执行。开关由安全监视器调用触发,它使用上下文管理库导出的API来实现此功能。在两种安全状态之间切换执行也是中断管理的要求。这导致对SPD服务的严重依赖。TF-A实现了一个示例测试安全有效负载调度器(TSPD)服务。

SPD服务插入EL3运行时固件,可能对TF-A的某些端口通用。

  • 3、安全有效载荷(SP)。在生产系统上,安全有效负载对应于在Secure-EL1/Secure-EL0中运行的安全操作系统。它与SPD服务接口,以管理与非安全软件的通信。TF-A实现了一个名为测试安全有效负载(TSP)的示例安全有效负载,它仅在secure-EL1中运行。

安全有效负载实现对于TF-A的某些端口来说可能是通用的,就像SPD服务一样。

原文链接:https://trustedfirmware-a.readthedocs.io/en/latest/design/interrupt-framework-design.html#concepts

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45264425/article/details/128859034

制作zcu102开发板的fit image内核_luo_xian_neng的博客-爱代码爱编程

参考:     https://blog.csdn.net/JerryGou/article/details/85170949       https://blog.csdn.net/luhao806/article/details/78240702 开环境: 软件开发环境:     ubuntu16.04.6  +  Petalinux 2018

zynqmp专栏之《系统启动Linux信息 完整版》-爱代码爱编程

Xilinx Zynq MP First Stage Boot Loader Release 2019.2   Oct 25 2019  -  08:29:27 NOTICE:  ATF running on XCZU9EG/silicon v4/RTL5.1 at 0xfffea000 NOTICE:  BL31: Secure code at 0x0

0-博客笔记导读目录(全部)-爱代码爱编程

置顶推荐:1、ARMV8-aarch64的通用寄存器和系统寄存器介绍2、ARM trustzone学习和总结-一篇就够了3、ARMV8的一些总结-一篇就够了4、ARMV8-aarch64的虚拟内存(mmu/tlb/cache)介绍-概念扫盲5、ARM cache的学习笔记-一篇就够了6、ARM MMU的学习笔记-一篇就够了7、ATF的代码学习篇-一篇

ARM学习书单一提供打包下载地址-爱代码爱编程

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 在文中末尾,提供百度网盘打包下载。 ARM书单 Trustzone-PDF: 1、ARM_DEN0028A_SMC_Calling_Convention.pdf 2、RM Security Technology Building a Secure System using

[ATF]-ATF文档和代码的深度解读-爱代码爱编程

组件(components) 1. SecureOS的调度器 术语: (路径:services/spd) SPD:Secure Payload Dispatcher opteed:OP-TEE Dispatcher tlkd:Trusted Little Kernel Dispatcher trusty:Trusty Dispatcher mte

OPTEE学习笔记 - 启动流程(一)-爱代码爱编程

根据最近的学习心得,准备记录一下optee的启动流程分析。在第一部分里,我着重介绍BL31启动optee(BL32)的过程,以及主核从核的启动流程。下一部分,我着重介绍optee的启动流程。 我所参考的代码是optee-3.11.0,ATF-2.4,主要关注aarch64平台的启动流程。 ATF启动流程 大部分aarch64平台都会使用ATF(arm

[imx8mpevk] pcie endpoint test-爱代码爱编程

正常流程:https://www.kernel.org/doc/html/latest/PCI/endpoint/pci-test-howto.htmlhttps://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/latest/exports/docs/linux/Foundati

集成电路芯片半导体中英文对照术语词汇表-爱代码爱编程

英语中文 1-9  10 gigabit10 Gb1st Nyquist zone第一奈奎斯特区域3D full‑wave electromagnetic solver3D 全波电磁解算器3-state三态4th generation segmented routing第四代分层布线技术5G commercialization5G 商用7 series F

ATF里面都有什么?-爱代码爱编程

引流关键词: BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33,SCP_BL1,SCP_BL2,BL0,BL30, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、T

ARM SCP-firmware 代码解析-爱代码爱编程

 目录 1.scp 代码结构 1.1 scp 目录结构 2 scp module 2.1.所有module信息的维护 2.2.module功能的提供 2.2.1 module的绑定 3.scp 应用初始化及boot流程 3.1 scp 应用初始化流程 3.2 scp boot 3.2.1 ARM Trusted Firmware 3.

【专题目录21】atf(tf-a)_代码改变世界ctw的博客-爱代码爱编程

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: ARMv8/ARMv9架构精选系列–目录 👈👈👈optee精选系列–目录👈👈👈ARMV8/ARMV9/Trust

atf源码篇(六):docs文件夹-components组件(5)el3_摸肚子的小胖子的博客-爱代码爱编程

5、EL3安全分区管理器-EL3 Secure Partition Manager 1、前言 本文件描述了基于FF-A规范的EL3 SPMC的设计。(Secure Partition Manager) EL3 SPMC

atf源码篇(七):docs文件夹-components组件(6)异常处理框架_摸肚子的小胖子的博客-爱代码爱编程

前面首先了解EL3大概都有些什么东西,以及这些东西是是干嘛的。这里你还有映像吗? 这里来看看异常处理框架。嘤嘤嘤,这里看到了老师考我的SMC是什么异常,我怎么没有早点看到,made,损失大了。 6、异常处理-Excep

atf官方文档翻译(十五):atf固件设计(firmware design)-armv8-a体系结构扩展&&atf的代码结构-爱代码爱编程

1、Armv8-A体系结构扩展 TF-A在适用的情况下使用Armv8-A架构扩展。本节列出了体系结构扩展的用法,以及控制它们的构建标志。 通常,除非单独提及,否则构建选项ARM_ARCH_MAJOR和ARM_ARCH_M

atf官方文档翻译(十七):中断管理框架( interrupt management framework)-概念-爱代码爱编程

该框架负责管理路由到EL3的中断。它还允许EL3软件配置中断路由行为。其主要目标是执行以下两项要求。 1、当执行处于非安全状态(正常世界)时,应该可以将安全软件处理的中断(安全中断)路由到EL3。然后,根据软件配置和GI

[专栏目录]-爱代码爱编程

ongoing… 类别博文说明overview01-ATF里面都有什么?02- Image Terminology03-System Control Processor Firmware简介Components01-Se