armv8/armv9页表属性(page descriptor)的详细介绍

快速链接:
.
个人博客笔记导读目录(全部)

  • ARMv8/ARMv9架构精选系列–目录
  • ARMV8/ARMV9/Trustzone/TEE安全课程

目录

        • 1、stage1的页表属性
        • 2、stage2的页表属性
        • 3、各标志位的详细介绍
          • 3.1、MemAttr
          • 3.1、NS
          • 3.1、AP
          • 3.1、SH
          • 3.1、AF
          • 3.1、nG
          • 3.1、DBM
          • 3.1、Contiguous
          • 3.1、XN or UXN

1、stage1的页表属性

(Attribute fields in stage 1 VMSAv8-64 Block and Page descriptors)
armv8/armv9页表属性(page descriptor)的详细介绍_第1张图片

  • PBHA, bits[62:59] :for FEAT_HPDS2
  • XN or UXN, bit[54] : Execute-never or Unprivileged execute-never
  • PXN, bit[53] :Privileged execute-never
  • Contiguous, bit[52] : translation table entry 是连续的,可以存在一个TLB Entry中
  • DBM, bit[51] :Dirty Bit Modifier
  • GP, bit[50] :for FEAT_BTI
  • nT, bit[16] :for FEAT_BBM
  • nG, bit[11] :缓存在TLB中的翻译是否使用ASID标识
  • AF, bit[10] : Access flag, AF=0后,第一次访问该页面时,会将该标志置为1. 即暗示第一次访问
  • SH, bits[9:8] :shareable属性
  • AP[2:1], bits[7:6] :Data Access Permissions bits,
  • NS, bit[5] :Non-secure bit
  • AttrIndx[2:0], bits[4:2] :

2、stage2的页表属性

(Attribute fields in stage 2 VMSAv8-64 Block and Page descriptors)
armv8/armv9页表属性(page descriptor)的详细介绍_第2张图片

  • PBHA[3:1], bits[62:60] :for FEAT_HPDS2
  • PBHA[0], bit[59] :for FEAT_HPDS2
  • XN[1:0], bits[54:53] :Execute-never
  • Contiguous, bit[52] :translation table entry 是连续的,可以存在一个TLB Entry中
  • DBM, bit[51] :Dirty Bit Modifier
  • nT, bit[16] :for FEAT_BBM
  • FnXS, bit[11] :for FEAT_XS
  • AF, bit[10] :Access flag
  • SH, bits[9:8] :shareable属性
  • S2AP, bits[7:6] :Stage 2 data Access Permissions
  • MemAttr, bits[5:2] :

3、各标志位的详细介绍

3.1、MemAttr

armv8/armv9页表属性(page descriptor)的详细介绍_第3张图片

3.1、NS

Non-secure比特 表示转换后的物理地址是secure的还是non-secure的。
在REE(linux)和TEE(optee)双系统的环境下,可同时开启两个系统的MMU.
在secure和non-secure中使用不同的页表.secure的页表可以映射non-secure的内存,而non-secure的页表不能去映射secure的内存,否则在转换时会发生错误
armv8/armv9页表属性(page descriptor)的详细介绍_第4张图片

3.1、AP

Data access permissions 数据访问权限
armv8/armv9页表属性(page descriptor)的详细介绍_第5张图片

3.1、SH

shareable属性
armv8/armv9页表属性(page descriptor)的详细介绍_第6张图片

3.1、AF

Access flag, AF=0后,第一次访问该页面时,会将该标志置为1. 即暗示第一次访问

3.1、nG

对于 EL0/EL1 虚拟地址空间,Page Descriptor属性字段中的 nG 位将转换标记为Gloabl(G) 或non-Gloabl(nG)。例如,内核映射是Gloabl(G)翻译,应用程序映射是non-Gloabl翻译。Gloabl翻译适用于当前正在运的任何应用程序。非全局翻译仅适用于特定应用程序

non-Gloabl映射在 TLB 中使用 ASID进行标记。在 TLB 查找时,将 TLB 条目中的 ASID 与当前选择的 ASID 进行比较。如果它们不匹配,则不使用TLB 条目。下图显示了内核空间中没有 ASID 标记的全局映射和用户空间中具有 ASID 标记的非全局映射
armv8/armv9页表属性(page descriptor)的详细介绍_第7张图片

3.1、DBM

TODO

3.1、Contiguous

TODO

3.1、XN or UXN

特权和非特权不可从该memory-region中执行指令的标志位:
Execute-never
Unprivileged execute-never


你可能感兴趣的:(ARM,页表,MMU,Cache,armv9,armv8)