ARM MMU在各种操作模式下运行

时间:2012-04-03 19:50:01

标签: linux arm mmu

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

  1. Linux内核模式对应 ARM管理员模式
  2. Linux用户模式对应 ARM用户模式
  3. 内核模式(启用MMU)中,Linux使用相对地址而不是物理地址。即,物理地址=相对地址 - PAGE_OFFSET + PHYS_OFFSET
  4. 用户模式(启用MMU)中,Linux使用虚拟地址而不是物理地址。即,物理地址= MMU翻译(虚拟地址)使用pte,pmd,pgd
  5. 问题:

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

    2. 如果启用,则表示相同的MMU在翻译Supervisor模式和用户模式时以不同的方式运行。

    3. 如果MMU在不同的模式下以不同的方式运行,请指点mmu功能是如何进行各种模式的。

    4. 提前致谢。

1 个答案:

答案 0 :(得分: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处理器。