1

I am little confused about how linux takes advantage of ARMv7 MMU hardware for its 3 level page table walk. MMU has only 2 registers ttbr0 and ttbr1 (one for kernel and other for user-space). How does mmu know know multi-level page table walk of linux?

Thanks, Hvr

4

1 回答 1

1

如果N虚拟地址的高位全为零,则转换从TTBR0else开始TTBR1N来自TTBCR. TTBRn寄存器包含一级表基的物理地址。第一级表的适当条目被加载,并且该条目的各个位确定转换是否使用第二级表,如果是,则其物理地址是什么。

MMU 可以配置为使用短描述符(32 位物理地址)或长描述符(40 位物理地址)。使用短描述符时,最多只能使用两级转换表。当使用长描述符时,可以有三个级别。

这忽略了第 2 阶段的转换(管理程序)。所有内容都记录在 ARMARM for v7-A&R 部分 B3.3:http: //infocenter.arm.com/help/topic/com.arm.doc.ddi0406c/index.html

于 2015-01-26T15:14:36.527 回答