TrustZone之在安全状态之间切换

        如果处理器处于NS.EL1,而软件想要转移到S.EL1,应该如何实现呢? 要改变安全状态,无论是向上还是向下,执行都必须经过EL3,如下图所示:

        前面的图表显示了在不同安全状态之间移动涉及的步骤的示例序列。逐步进行解释:

  1. 进入较高的异常级别需要一个异常。通常,此异常可能是FIQ或SMC(Secure Monitor Call)异常。我们稍后将更详细地查看中断处理和SMCs。
  2. EL3在适当的异常向量处被执行。运行在EL3中的软件切换SCR_EL3.NS位。
  3. 然后,异常返回将处理器从EL3带到S.EL1。

        改变安全状态不仅仅涉及在异常级别之间移动和更改SCR_EL3.NS位。我们还必须考虑处理器状态。

        矢量寄存器、通用寄存器和大多数系统寄存器只有一个副本。在安全状态之间移动时,保存和恢复寄存器状态是软件的责任,而不是硬件。按照惯例,执行此操作的软件部分称为受信任监视程序。这使我们先前的示例看起来更像是下图中所示的内容:

        Trusted Firmware是由Arm发起的开源项目,提供了受信任监视程序的参考实现。我们将在本指南的后面讨论Trusted Firmware。

        很少有寄存器按安全状态进行分段。这意味着有两份寄存器的副本,核心会自动使用属于当前安全状态的副本。这些寄存器仅限于

相关推荐

  1. TrustZone问答

    2023-12-06 09:06:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 09:06:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 09:06:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 09:06:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 09:06:02       18 阅读

热门阅读

  1. GoLang语言Map用法

    2023-12-06 09:06:02       33 阅读
  2. Usergolang 一些优质关于sip协议包

    2023-12-06 09:06:02       35 阅读
  3. tomcat结构目录有哪些

    2023-12-06 09:06:02       35 阅读
  4. 【redis笔记】redis基础数据类型及其命令

    2023-12-06 09:06:02       27 阅读
  5. Armv8.x和Armv9.x架构扩展简介

    2023-12-06 09:06:02       38 阅读
  6. vue和react使用上的不同

    2023-12-06 09:06:02       34 阅读