arm64: MMU definitions
authorCatalin Marinas <catalin.marinas@arm.com>
Mon, 5 Mar 2012 11:49:27 +0000 (11:49 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 17 Sep 2012 12:41:56 +0000 (13:41 +0100)
commit4f04d8f00545110a0e525ae2fb62ab38cb417236
tree021c6ff01a972de47341959b0bd0888775c9ed7b
parent60ffc30d5652810dd34ea2eec41504222f5d5791
arm64: MMU definitions

The virtual memory layout is described in
Documentation/arm64/memory.txt. This patch adds the MMU definitions for
the 4KB and 64KB translation table configurations. The SECTION_SIZE is
2MB with 4KB page and 512MB with 64KB page configuration.

PHYS_OFFSET is calculated at run-time and stored in a variable (no
run-time code patching at this stage).

On the current implementation, both user and kernel address spaces are
512G (39-bit) each with a maximum of 256G for the RAM linear mapping.
Linux uses 3 levels of translation tables with the 4K page configuration
and 2 levels with the 64K configuration. Extending the memory space
beyond 39-bit with the 4K pages or 42-bit with 64K pages requires an
additional level of translation tables.

The SPARSEMEM configuration is global to all AArch64 platforms and
allows for 1GB sections with SPARSEMEM_VMEMMAP enabled by default.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Documentation/arm64/memory.txt [new file with mode: 0644]
arch/arm64/include/asm/memory.h [new file with mode: 0644]
arch/arm64/include/asm/mmu.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable-2level-hwdef.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable-2level-types.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable-3level-hwdef.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable-3level-types.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable-hwdef.h [new file with mode: 0644]
arch/arm64/include/asm/pgtable.h [new file with mode: 0644]
arch/arm64/include/asm/sparsemem.h [new file with mode: 0644]