powerpc/8xx: Fix vaddr for IMMR early remap
authorChristophe Leroy <christophe.leroy@c-s.fr>
Tue, 17 May 2016 07:02:43 +0000 (09:02 +0200)
committerScott Wood <oss@buserror.net>
Sat, 9 Jul 2016 07:02:48 +0000 (02:02 -0500)
commitf86ef74ed9193c52411277eeac2eec69af553392
tree84c8ad083c2efc3a0688e56ab906cc49b2cc6e1d
parentc223c90386bc2306510e0ceacd768a0123ff2a2f
powerpc/8xx: Fix vaddr for IMMR early remap

Memory: 124428K/131072K available (3748K kernel code, 188K rwdata,
648K rodata, 508K init, 290K bss, 6644K reserved)
Kernel virtual memory layout:
  * 0xfffdf000..0xfffff000  : fixmap
  * 0xfde00000..0xfe000000  : consistent mem
  * 0xfddf6000..0xfde00000  : early ioremap
  * 0xc9000000..0xfddf6000  : vmalloc & ioremap
SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Today, IMMR is mapped 1:1 at startup

Mapping IMMR 1:1 is just wrong because it may overlap with another
area. On most mpc8xx boards it is OK as IMMR is set to 0xff000000
but for instance on EP88xC board, IMMR is at 0xfa200000 which
overlaps with VM ioremap area

This patch fixes the virtual address for remapping IMMR with the fixmap
regardless of the value of IMMR.

The size of IMMR area is 256kbytes (CPM at offset 0, security engine
at offset 128k) so a 512k page is enough

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <oss@buserror.net>
arch/powerpc/include/asm/fixmap.h
arch/powerpc/include/asm/mmu-8xx.h
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/head_8xx.S
arch/powerpc/sysdev/cpm_common.c