]> git.karo-electronics.de Git - karo-tx-linux.git/commit
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>
Tue, 29 Jan 2013 12:34:21 +0000 (12:34 +0000)
commit18f41053a87355d5fd4399f69b2530fcfa9093e3
tree36e21e9f933e501c760eab262c933465d22d7eb2
parent63d2e73903d3a7a137330bd500848c9f98f7e5cd
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]