aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorCédric Le Goater <clg@fr.ibm.com>2014-04-24 03:23:39 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-04-28 03:36:21 -0400
commit147c05168fc86e824ccd1c0a02b40843e3cbca88 (patch)
treeb11fef2a92755918913b6c630d4fdb8f64af394a /arch/powerpc/platforms
parent2d9afb369bc069f11a3a8696c4bdf95d4ddf1281 (diff)
powerpc/boot: Add support for 64bit little endian wrapper
The code is only slightly modified : entry points now use the FIXUP_ENDIAN trampoline to switch endian order. The 32bit wrapper is kept for big endian kernels and 64bit is enforced for little endian kernels with a PPC64_BOOT_WRAPPER config option. The linker script is generated using the kernel preprocessor flags to make use of the CONFIG_* definitions and the wrapper script is modified to take into account the new elf64ppc format. Finally, the zImage file is compiled as a position independent executable (-pie) which makes it loadable at any address by the firmware. Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index d9e2b19b7c8d..43b65ad1970a 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -422,6 +422,7 @@ config CPU_BIG_ENDIAN
422 422
423config CPU_LITTLE_ENDIAN 423config CPU_LITTLE_ENDIAN
424 bool "Build little endian kernel" 424 bool "Build little endian kernel"
425 select PPC64_BOOT_WRAPPER
425 help 426 help
426 Build a little endian kernel. 427 Build a little endian kernel.
427 428
@@ -430,3 +431,7 @@ config CPU_LITTLE_ENDIAN
430 little endian powerpc. 431 little endian powerpc.
431 432
432endchoice 433endchoice
434
435config PPC64_BOOT_WRAPPER
436 def_bool n
437 depends on CPU_LITTLE_ENDIAN