ARMv8 - 安全机制(TrustZone) - 异常等级

ARMv8处理器有四个异常等级EL0-EL3,每个等级有不同的资源和权限。EL0用于用户程序,EL1为操作系统,EL2处理虚拟化,EL3是安全监控。异常等级通过SVC、HVC、SMC指令切换,且EL0不能直接到EL2或EL3。异常处理完成后,通过eret返回。EL0和EL1是必需的,EL2和EL3可选。

简介

  • ARMv8架构处理器有一套异常等级(Exception level)机制,分成4个等级(EL0 ~ EL3)。
  • 处理器运行时会处于其中的某个等级并且可以进行等级切换。

资源差异

  • 每个异常等级都拥有一些自己版本的特殊寄存器,例如:system ctrl 寄存器(sctlr_el1,sctlr_el2 …),程序状态寄存器(SPSR_EL1,SPSR_EL3,…)。
  • 一些异常等级有些独有的特殊寄存器,例如:EL3 安全配置寄存器(Secure Configuration Register)(SCR_EL3),EL2 虚拟化配置寄存器(Hypervisor Configuration Register)(HCR_EL2)。
  • 处理器一般会使用当前异常等级的特殊寄存器来实现不同等级之间的物理隔离。

权限差异

  • 随着异常等级的提高,软件的访问权限也相应增加,因此异常等级又被称为安全等级。
  • 当处理器在某个异常级别执行的时候,处理器能够访问下面的资源:
  1. 可用于当前异常级别和当前安全状态的资源集。
  2. 在当前的安全状态下,所有更低异常级别上可用的资源。
  • 这意味着,异常等级为EL3时,处理器可以访问任何资源(包括安全状态和非安全状态下)。

初始等级

  • 处理器上电之后运行在最高的异常等级EL3,即bl1处于EL3。

异常等级切换

  • 该机制被命名为异常等级,是因为等级的切换只能通过同步异常实现,注意:不是通过中断实现的。
  • 异常级别切换只能通过软件触发同步异常,或者同步异常处理返回后。
  1. 软件触发同步异常时,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值