【问题标题】:ARM MMU operation in various operating modes各种操作模式下的 ARM MMU 操作
【发布时间】:2012-04-17 12:32:08
【问题描述】:

在我提出问题之前,我会先说明与该主题相关的理解,

  1. Linux内核模式对应ARM监督模式
  2. Linux 用户模式 对应 ARM 用户模式
  3. 内核模式(启用MMU)中,Linux 使用相对地址而不是物理地址。即,物理地址 = 相对地址 - PAGE_OFFSET + PHYS_OFFSET
  4. 用户模式(启用MMU)中,Linux 使用虚拟地址而不是物理地址。即,物理地址 = MMU Translation(Virtual Address) using pte, pmd, pgd

问题:

  1. 是否在主管模式下启用了 MMU(用于内核地址)。

  2. 如果启用,那么这是否意味着相同的 MMU 在翻译主管模式和用户模式时以不同的方式工作。

  3. 如果MMU在不同模式下的功能不同,请指点mmu在不同模式下的功能。

提前致谢。

【问题讨论】:

    标签: linux arm mmu


    【解决方案1】:

    1:是的。启用 MMU 可以在所有模式下启用它(虽然它需要针对安全/非安全状态单独完成,但这超出了 Linux 的范围)。

    2:是的,因为它可以对特权(内核)和用户模式具有不同的访问权限。可以在 ARM1176 技术参考手册中找到一个有点过时但概念上有用的表格来证明这一点。 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Caceaije.html

    3:MMU 在所有模式下的功能都相同。好的,为了完整性:有一个叫做“域”的概念,内核可以使用它来完全绕过访问权限检查。不过,这在最新的处理器中已被弃用,并且不再用于 ARM11 和 Cortex-A 处理器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2016-10-21
      • 2013-09-10
      相关资源
      最近更新 更多