ARMv7-A工作模式介绍

描述

TF-A 一开始是为 ARMv8 准备的,ARMv8 最突出的特点就是支持 64 位指令,但是为了兼容原来的 ARMv7,ARMv8提供了两种指令集:AAarch64 和 AArch32,根据字面意思就是 64 位和 32 位,其中 AArch32 和 ARMv7基本一样(会多一些其他操作指令)。

安全不能仅仅依靠软件来实现,也是需要硬件支持的,比如 ARM处理器就有不同的运行等级,运行在低等级(非安全模式)的应用就不能访问高等级(安全模式)的资源,以此来保证敏感资源的安全性。

ARMv7-A 工作模式

以前的 ARMv7 处理器有 7 中运行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef 和 System。新的ARMv7-A 架构加入了 TrustZone安全扩展,所以就新加了一种运行模式:Monitor,新的处理器架构还支持虚拟化扩展,因此又加入了另一个运行模式:Hyp,所以 Cortex-A7 处理器有 9种处理模式,如表所示:

模型模型

不同的处理器模式下,CPU 对于硬件的访问权限不同,叫做 PrivilegeLevel(特权等级),一共有两个特权级别:Privilege(特权级)和 non-privilege(非特权级)。其中只有User 模式处于non-privilege,也就是非特权级,剩下的 8 个模式都是 privilege(特权级)。

系统启动以后应用软件都是运行在 User模式,也就是非特权级,这个时候处理器对于敏感资源的访问是受限的,如果要访问这些敏感资源就需要切换到对应的工作模式下。

ARMv7-A 对 Privilege Level 进行了命名:PL0 和 PL1,后来也出现了 PL2,用于虚拟扩展。ARMv7-A 新增的Monitor 模式就是针对安全扩展的,为了支持 TEE 而引入的。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分