metag: Memory management
authorJames Hogan <james.hogan@imgtec.com>
Tue, 9 Oct 2012 09:54:17 +0000 (10:54 +0100)
committerJames Hogan <james.hogan@imgtec.com>
Sat, 2 Mar 2013 20:09:19 +0000 (20:09 +0000)
commitf5df8e268f749987c32c7eee001f7623fd7be69c
treeeb727e5917b4f4e4e0de0ec085fd36a11aa8d898
parent99ef7c2ac1e3b01f532bfdebbe92e9960e95bebc
metag: Memory management

Add memory management files for metag.

Meta's 32bit virtual address space is split into two halves:
 - local (0x08000000-0x7fffffff): traditionally local to a hardware
   thread and incoherent between hardware threads. Each hardware thread
   has it's own local MMU table. On Meta2 the local space can be
   globally coherent (GCOn) if the cache partitions coincide.
 - global (0x88000000-0xffff0000): coherent and traditionally global
   between hardware threads. On Meta2, each hardware thread has it's own
   global MMU table.

The low 128MiB of each half is non-MMUable and maps directly to the
physical address space:
 - 0x00010000-0x07ffffff: contains Meta core registers and maps SoC bus
 - 0x80000000-0x87ffffff: contains low latency global core memories

Linux usually further splits the local virtual address space like this:
 - 0x08000000-0x3fffffff: user mappings
 - 0x40000000-0x7fffffff: kernel mappings

Signed-off-by: James Hogan <james.hogan@imgtec.com>
arch/metag/include/asm/mmu.h [new file with mode: 0644]
arch/metag/include/asm/mmu_context.h [new file with mode: 0644]
arch/metag/include/asm/page.h [new file with mode: 0644]
arch/metag/include/asm/pgalloc.h [new file with mode: 0644]
arch/metag/include/asm/pgtable.h [new file with mode: 0644]
arch/metag/mm/extable.c [new file with mode: 0644]
arch/metag/mm/fault.c [new file with mode: 0644]
arch/metag/mm/init.c [new file with mode: 0644]
arch/metag/mm/mmu-meta1.c [new file with mode: 0644]
arch/metag/mm/mmu-meta2.c [new file with mode: 0644]