1、ARM v7-A 系列CPU的MMU隐射分析
ARMv7-A系列的CPU加入了很多扩展,如多核处理器扩展、大物理地址扩展、TrustZone扩展、虚拟化扩展。若支持大的物理地址,则必须支持多核处理器;若支持虚拟化,则必须支持大的物理地址、多核处理器、TrustZone。加入这些扩展后,相应的MMU(虚拟地址到物理地址的隐射功能)结构也改变了许多。本文首先分析加入扩展后MMU的整体结构,然后详细介绍地址转换中用到短描述符格式(32位)和长描述符格式(64位),以及如何实现虚拟地址到物理地址的查询,最后就二级隐射问题,给出一个例子用以验证。
ARM v7-A MMU 整体结构介绍
整体结构
整体结构由四部分组成,如下图所示。
PL2:NS(非安全模式)下的HYP(超级管理)模式
PL1:S(安全模模式)或者NS(非安全模式)下的其它模式(用户模式除外)
PL0:S或者NS下的用户模式
注:每个CPU(支持TrustZone扩展)可以处于安全模式或者非安全模式,处于任意模式(安全或者非安全)的CPU又有8个模式(支持TrustZone、虚拟化)。
这四部分为:
安全模式的PL1&0隐射,页表控制寄存器TTBCR,页表基址寄存器TTBR0/TTBR1,这些寄存器需要在S模式的PL1设置;
非安全模式的PL2隐射,页表控制寄存器HTCR,页表基址寄存器HTTBR,需要在NS的PL2设置;
非安全模式的PL1&0的一级映射,页表控制寄存器TTBCR,页表基址寄存器TTBR0/TTBR1,需要在NS模式的PL1设置;
非安全模式的PL1&0的二级映射,页表控制寄存器VTCR,页表基址寄存器VTTBR,需要在NS的PL2设置;
原作者:wangyw
更多回帖