linux/arch/arm/mm
Will Deacon 8903826d0c ARM: idmap: populate identity map pgd at init time using .init.text
When disabling and re-enabling the MMU, it is necessary to take out an
identity mapping for the code that manipulates the SCTLR in order to
avoid it disappearing from under our feet. This is useful when soft
rebooting and returning from CPU suspend.

This patch allocates a set of page tables during boot and populates them
with an identity mapping for the .idmap.text section. This means that
users of the identity map do not need to manage their own pgd and can
instead annotate their functions with __idmap or, in the case of assembly
code, place them in the correct section.

Acked-by: Dave Martin <dave.martin@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2011-12-06 14:04:14 +00:00
..
abort-ev4.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev4t.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev5t.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev5tj.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev6.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev7.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-lv4t.S ARM: entry: data abort: ensure r5 is preserved by abort functions 2011-07-02 10:56:12 +01:00
abort-macro.S ARM: 7088/1: entry: fix wrong parameter name used in do_thumb_abort 2011-09-10 23:39:56 +01:00
abort-nommu.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
alignment.c ARM: allow building alignment.c without PROC_FS 2011-10-01 21:08:54 +02:00
cache-fa.S ARM: mm: cache-fa: Use the new processor struct macros 2011-07-07 15:31:05 +01:00
cache-feroceon-l2.c ARM: fix cache-feroceon-l2 after stack based kmap_atomic() 2010-12-19 12:57:16 -05:00
cache-l2x0.c Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:17:32 +02:00
cache-tauros2.c ARM: Add Tauros2 L2 cache controller support 2009-11-27 15:43:21 -05:00
cache-v3.S ARM: mm: cache-v3: Use the new processor struct macros 2011-07-07 15:31:05 +01:00
cache-v4.S ARM: mm: cache-v4: Use the new processor struct macros 2011-07-07 15:31:06 +01:00
cache-v4wb.S ARM: mm: cache-v4wb: Use the new processor struct macros 2011-07-07 15:31:06 +01:00
cache-v4wt.S ARM: mm: cache-v4wt: Use the new processor struct macros 2011-07-07 15:31:06 +01:00
cache-v6.S ARM: mm: cache-v6: Use the new processor struct macros 2011-07-07 15:31:06 +01:00
cache-v7.S ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not succeed 2011-09-17 12:47:17 +01:00
cache-xsc3l2.c ARM: fix cache-xsc3l2 after stack based kmap_atomic() 2010-12-19 12:57:08 -05:00
context.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
copypage-fa.c ARM: Gemini: fix compiler error in copypage-fa.c 2010-04-27 12:45:10 +02:00
copypage-feroceon.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v3.c
copypage-v4mc.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
copypage-v4wb.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v4wt.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v6.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
copypage-xsc3.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-xscale.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
dma-mapping.c Merge branch 'depends/rmk/devel-stable' into imx/imx6q 2011-10-31 14:23:28 +01:00
extable.c
fault-armv.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
fault.c ARM: 7115/4: move __exception and friends to asm/exception.h 2011-10-17 09:02:44 +01:00
fault.h
flush.c Merge branches 'consolidate', 'ep93xx', 'fixes', 'misc', 'mmci', 'remove' and 'spear' into for-linus 2011-05-23 19:27:40 +01:00
highmem.c ARM: get rid of kmap_high_l1_vipt() 2010-12-19 12:56:46 -05:00
idmap.c ARM: idmap: populate identity map pgd at init time using .init.text 2011-12-06 14:04:14 +00:00
init.c arm: Add export.h to ARM specific files as required. 2011-10-31 19:30:50 -04:00
iomap.c ARM: set vga memory base at run-time 2011-07-12 11:19:29 -05:00
ioremap.c ARM: 7129/1: Add __arm_ioremap_exec for mapping external memory as MT_MEMORY 2011-10-22 22:24:48 +01:00
Kconfig Merge branch 'imx/imx6q' into next/soc 2011-11-02 02:46:55 +01:00
Makefile ARM: v6k: introduce CPU_V6K option 2011-02-02 21:23:26 +00:00
mm.h ARM: 7076/1: LPAE: Add (pte|pmd)val_t type definitions as u32 2011-10-06 15:40:05 +01:00
mmap.c ARM: 6877/1: the ADDR_NO_RANDOMIZE personality flag should be honored with mmap() 2011-04-14 09:15:24 +01:00
mmu.c Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
nommu.c ARM: restart: remove argument to setup_mm_for_reboot() 2011-11-10 22:30:28 +00:00
pabort-legacy.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pabort-v6.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pabort-v7.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pgd.c Merge branches 'fixes', 'pgt-next' and 'versatile' into devel 2011-03-20 09:32:12 +00:00
proc-arm6_7.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
proc-arm7tdmi.S ARM: mm: proc-arm7tdmi: Use the new processor struct macros 2011-07-07 15:31:08 +01:00
proc-arm9tdmi.S ARM: mm: proc-arm9tdmi: Use the new processor struct macros 2011-07-07 15:31:09 +01:00
proc-arm720.S ARM: mm: proc-arm720: Use the new processor struct macros 2011-07-07 15:31:07 +01:00
proc-arm740.S ARM: mm: proc-arm740: Use the new processor struct macros 2011-07-07 15:31:08 +01:00
proc-arm920.S ARM: pm: only use preallocated page table during resume 2011-09-20 23:33:38 +01:00
proc-arm922.S ARM: mm: proc-arm922: Use the new processor struct macros 2011-07-07 15:31:08 +01:00
proc-arm925.S ARM: mm: proc-arm925: Use the new processor struct macros 2011-07-07 15:31:09 +01:00
proc-arm926.S ARM: pm: only use preallocated page table during resume 2011-09-20 23:33:38 +01:00
proc-arm940.S ARM: mm: proc-arm940: Use the new processor struct macros 2011-07-07 15:31:09 +01:00
proc-arm946.S ARM: 7005/1: freshen up mm/proc-arm946.S 2011-08-09 08:42:38 +01:00
proc-arm1020.S ARM: mm: proc-arm1020: Use the new processor struct macros 2011-07-07 15:31:07 +01:00
proc-arm1020e.S ARM: mm: proc-arm1020e: Use the new processor struct macros 2011-07-07 15:31:07 +01:00
proc-arm1022.S ARM: mm: proc-arm1022: Use the new processor struct macros 2011-07-07 15:31:07 +01:00
proc-arm1026.S ARM: mm: proc-arm1026: Use the new processor struct macros 2011-07-07 15:31:07 +01:00
proc-fa526.S ARM: mm: proc-fa526: Use the new processor struct macros 2011-07-07 15:31:09 +01:00
proc-feroceon.S ARM: mm: proc-feroceon: Use the new processor struct macros 2011-07-07 15:31:10 +01:00
proc-macros.S ARM: Fix build errors caused by adding generic macros 2011-07-21 17:49:54 +01:00
proc-mohawk.S ARM: mm: proc-mohawk: Use the new processor struct macros 2011-07-07 15:31:10 +01:00
proc-sa110.S ARM: mm: proc-sa110: Use the new processor struct macros 2011-07-07 15:31:10 +01:00
proc-sa1100.S ARM: pm: only use preallocated page table during resume 2011-09-20 23:33:38 +01:00
proc-syms.c ARM: add size argument to __cpuc_flush_dcache_page 2009-12-14 14:53:22 +00:00
proc-v6.S ARM: pm: no need to save/restore context ID register 2011-09-20 23:33:40 +01:00
proc-v7.S Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
proc-xsc3.S ARM: pm: only use preallocated page table during resume 2011-09-20 23:33:38 +01:00
proc-xscale.S ARM: pm: only use preallocated page table during resume 2011-09-20 23:33:38 +01:00
tlb-fa.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
tlb-v3.S ARM: mm: tlb-v3: Use the new processor struct macros 2011-07-07 15:31:11 +01:00
tlb-v4.S ARM: mm: tlb-v4: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v4wb.S ARM: mm: tlb-v4wb: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v4wbi.S ARM: mm: tlb-v4wbi: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v6.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
tlb-v7.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
vmregion.c ARM: DMA: top-down allocation in DMA coherent region 2011-02-23 17:24:11 +00:00
vmregion.h ARM: DMA coherent allocator: align remapped addresses 2010-07-27 10:43:48 +01:00