The ARM1136JF-S MMU implements the hardware page table walking mechanism from ARMv4 and ARMv5 cached processors with the exception of the fine page table descriptor.
A hardware page table walk occurs whenever there is a TLB miss. ARM1136JF-S hardware page table walks do not cause a read from the level one Unified/Data Cache. or the TCM. The RGN, S, and C bits in the Translation Table Base Registers determine the memory region attributes for the page table walk.
Two formats of page tables are supported:
A backwards-compatible format supporting subpage access permissions. These have been extended so that certain page table entries support extended region types.
ARMv6 format, not supporting sub-page access permissions, but with support for ARMv6 MMU features. These features are:
extended region types
global and process specific pages
more access permissions
marking of Shared and Non-Shared regions
marking of Execute-Never regions.
Additionally two translation table base registers are provided. On a TLB miss, the Translation Table Base Control Register, CP15 c2, and the top bits of the Virtual Address determine if the first or second translation table base is used. See c2, Translation Table Base Control Register, TTBCR for details. The first-level descriptor indicates whether the access is to a section or to a page table. If the access is to a page table, the ARM1136JF-S MMU fetches a second-level descriptor. A page table holds 256 32-bit entries 4KB in size. You can determine the page type by examining bits [1:0] of the second-level descriptor. For both first and second level descriptors if bits [1:0] are b00, the associated Virtual Addresses are unmapped, and attempts to access them generate a translation fault. Software can use bits [31:2] for its own purposes in such a descriptor, because they are ignored by the hardware. Where appropriate, ARM Limited recommends that bits [31:2] continue to hold valid access permissions for the descriptor.