diff options
author | Kevin Hao <haokexin@gmail.com> | 2013-12-24 15:12:07 +0800 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-01-09 17:52:16 -0600 |
commit | 78a235efdc42ff363de81fdbc171385e8b86b69b (patch) | |
tree | 5e23fc68849e1ad9f86b10b019a6c844c75e2b54 /arch/powerpc/mm/fsl_booke_mmu.c | |
parent | dd189692d40948d6445bbaeb8cb9bf9d15f54dc6 (diff) | |
download | op-kernel-dev-78a235efdc42ff363de81fdbc171385e8b86b69b.zip op-kernel-dev-78a235efdc42ff363de81fdbc171385e8b86b69b.tar.gz |
powerpc/fsl_booke: set the tlb entry for the kernel address in AS1
We use the tlb1 entries to map low mem to the kernel space. In the
current code, it assumes that the first tlb entry would cover the
kernel image. But this is not true for some special cases, such as
when we run a relocatable kernel above the 64M or set
CONFIG_KERNEL_START above 64M. So we choose to switch to address
space 1 before setting these tlb entries.
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/mm/fsl_booke_mmu.c')
-rw-r--r-- | arch/powerpc/mm/fsl_booke_mmu.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c index ce4a116..1d54f6d 100644 --- a/arch/powerpc/mm/fsl_booke_mmu.c +++ b/arch/powerpc/mm/fsl_booke_mmu.c @@ -222,7 +222,9 @@ void __init adjust_total_lowmem(void) /* adjust lowmem size to __max_low_memory */ ram = min((phys_addr_t)__max_low_memory, (phys_addr_t)total_lowmem); + i = switch_to_as1(); __max_low_memory = map_mem_in_cams(ram, CONFIG_LOWMEM_CAM_NUM); + restore_to_as0(i); pr_info("Memory CAM mapping: "); for (i = 0; i < tlbcam_index - 1; i++) |