1
0
Fork 0
alistair23-linux/arch/arm/boot/compressed
Jonathan Austin b8083f86e8 ARM: 7666/1: decompressor: add -mno-single-pic-base for building the decompressor
Before jumping to (position independent) C-code from the decompressor's
assembler world we set-up the C environment. This setup currently does not
set r9, which for arm-none-uclinux-uclibceabi toolchains is by default
expected to be the PIC offset base register (IE should point to the
beginning of the GOT).

Currently, therefore, in order to build working kernels that use the
decompressor it is necessary to use an arm-linux-gnueabi toolchain, or
similar. uClinux toolchains cause a prefetch abort to occur at the beginning
of the decompress_kernel function.

This patch allows uClinux toolchains to build bootable zImages by forcing
the -mno-single-pic-base option, which ensures that the location of the GOT
is re-derived each time it is required, and r9 becomes free for use as a
general purpose register.

This has a small (4% in instruction terms) advantage over the alternative of
setting r9 to point to the GOT before calling into the C-world.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-06 23:45:42 +00:00
..
.gitignore ARM: zImage/virt: hyp mode entry support for the zImage loader 2012-09-19 08:32:50 +01:00
Makefile ARM: 7666/1: decompressor: add -mno-single-pic-base for building the decompressor 2013-03-06 23:45:42 +00:00
atags_to_fdt.c ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE 2012-07-09 17:39:39 +01:00
big-endian.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
decompress.c ARM: decompress: remove unused ARCH_HAS_DECOMP_WDOG 2013-01-11 10:53:55 +08:00
head-sa1100.S Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
head-shark.S [PATCH] ARM: 2816/1: Shark: boot kernel images bigger than 1 MB 2005-07-17 20:12:08 +01:00
head-sharpsl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head-shmobile.S ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
head-xscale.S ARM: remove ixp23xx and ixp2000 platforms 2012-04-06 08:26:18 -05:00
head.S ARM: 7600/1: include CONFIG_DEBUG_LL_INCLUDE rather than mach/debug-macro.S 2012-12-16 10:04:23 +00:00
libfdt_env.h ARM: zImage: allow supplementing appended DTB with traditional ATAG data 2011-09-14 13:51:59 -04:00
ll_char_wr.S [ARM] Remove LOADREGS macro 2006-06-25 11:23:45 +01:00
misc.c ARM: initial multiplatform support 2012-09-14 09:22:06 -05:00
mmcif-sh7372.c mmc: sdhi, mmcif: zboot: Correct clock disable logic 2011-08-08 16:38:04 +09:00
ofw-shark.c [ARM] 2922/1: compile fix for shark 2005-09-20 16:21:42 +01:00
piggy.gzip.S arm: add support for LZO-compressed kernels 2010-01-11 09:34:05 -08:00
piggy.lzma.S ARM: 6026/1: ARM: Add support for LZMA-compressed kernel images 2010-04-14 12:05:36 +01:00
piggy.lzo.S arm: add support for LZO-compressed kernels 2010-01-11 09:34:05 -08:00
piggy.xzkern.S ARM: 7001/2: Wire up support for the XZ decompressor 2012-03-24 09:38:52 +00:00
sdhi-sh7372.c mmc: sdhi, mmcif: zboot: Correct clock disable logic 2011-08-08 16:38:04 +09:00
sdhi-shmobile.c ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
sdhi-shmobile.h ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
string.c ARM: zImage: gather some string functions into string.c 2011-09-14 13:51:58 -04:00
vmlinux.lds.in ARM: zImage: ensure it is always a multiple of 64 bits in size 2011-09-14 12:12:12 -04:00