linux/arch/arm/boot/compressed
Will Deacon ab959ea56d ARM: 8191/1: decompressor: ensure I-side picks up relocated code
commit 238962ac71 upstream.

To speed up decompression, the decompressor sets up a flat, cacheable
mapping of memory. However, when there is insufficient space to hold
the page tables for this mapping, we don't bother to enable the caches
and subsequently skip all the cache maintenance hooks.

Skipping the cache maintenance before jumping to the relocated code
allows the processor to predict the branch and populate the I-cache
with stale data before the relocation loop has completed (since a
bootloader may have SCTLR.I set, which permits normal, cacheable
instruction fetches regardless of SCTLR.M).

This patch moves the cache maintenance check into the maintenance
routines themselves, allowing the v6/v7 versions to invalidate the
I-cache regardless of the MMU state.

Reported-by: Marc Carino <marc.ceeeee@gmail.com>
Tested-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2014-11-27 11:21:49 +00:00
..
.gitignore ARM: 7992/1: boot: compressed: ignore bswapsdi2.S 2014-03-07 22:04:10 +00:00
atags_to_fdt.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
big-endian.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
debug.S ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING 2013-06-05 23:32:24 +01:00
decompress.c arm: add support for LZ4-compressed kernel 2013-07-09 10:33:30 -07:00
head-sa1100.S ARM: 7743/1: compressed/head.S: work around new binutils warning 2013-06-05 23:32:27 +01:00
head-sharpsl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head-shmobile.S ARM: shmobile: Update romImage to relocate appended DTB 2013-07-17 10:04:36 +09:00
head-xscale.S ARM: remove ixp23xx and ixp2000 platforms 2012-04-06 08:26:18 -05:00
head.S ARM: 8191/1: decompressor: ensure I-side picks up relocated code 2014-11-27 11:21:49 +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
Makefile ARM: SoC platform changes for 3.14 2014-01-23 18:40:49 -08:00
misc.c stackprotector: Introduce CONFIG_CC_STACKPROTECTOR_STRONG 2013-12-20 09:38:40 +01:00
mmcif-sh7372.c mmc: sdhi, mmcif: zboot: Correct clock disable logic 2011-08-08 16:38:04 +09:00
piggy.gzip.S arm: add support for LZO-compressed kernels 2010-01-11 09:34:05 -08:00
piggy.lz4.S arm: add support for LZ4-compressed kernel 2013-07-09 10:33:30 -07: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