powerpc/fsl-booke: Fix CONFIG_RELOCATABLE support on FSL Book-E ppc32
authorKumar Gala <galak@kernel.crashing.org>
Wed, 21 Apr 2010 07:12:58 +0000 (02:12 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 26 Apr 2010 22:54:15 +0000 (17:54 -0500)
commitdbc9632a8c25c6efcc1ca3f3a2177c855b6e053e
treefe9ef8dfc37ab28ade8f8316563394fadc9fd24a
parentb4d0a038e0f856313ca26fd3872bc209a2e616ad
powerpc/fsl-booke: Fix CONFIG_RELOCATABLE support on FSL Book-E ppc32

The following commit broke CONFIG_RELOCATABLE support on FSL Book-E
parts:

commit 549e8152de8039506f69c677a4546e5427aa6ae7
Author: Paul Mackerras <paulus@samba.org>
Date:   Sat Aug 30 11:43:47 2008 +1000

    powerpc: Make the 64-bit kernel as a position-independent executable

The change to __va and __pa to use PAGE_OFFSET & MEMORY_START causes
problems on the Book-E parts because we don't know MEMORY_START until
after we parse the device tree.  We need __va to work properly to even
parse the device tree so we have a chicken an egg.  So go back to using
he other definition of __va/__pa on CONFIG_BOOKE and use the
PAGE_OFFSET/MEMORY_START version on "Classic" PPC64.

Also updated casts to handle phys_addr_t being a different size from
unsigned long (ie 36-bit physical on PPC32).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/include/asm/page.h