linux/arch/arm/boot/compressed
Ard Biesheuvel e17b1af96b ARM: 8857/1: efi: enable CP15 DMB instructions before cleaning the cache
The EFI stub is entered with the caches and MMU enabled by the
firmware, and once the stub is ready to hand over to the decompressor,
we clean and disable the caches.

The cache clean routines use CP15 barrier instructions, which can be
disabled via SCTLR. Normally, when using the provided cache handling
routines to enable the caches and MMU, this bit is enabled as well.
However, but since we entered the stub with the caches already enabled,
this routine is not executed before we call the cache clean routines,
resulting in undefined instruction exceptions if the firmware never
enabled this bit.

So set the bit explicitly in the EFI entry code, but do so in a way that
guarantees that the resulting code can still run on v6 cores as well
(which are guaranteed to have CP15 barriers enabled)

Cc: <stable@vger.kernel.org> # v4.9+
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-04-23 17:28:37 +01:00
..
.gitignore ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile 2016-02-22 16:56:31 +00:00
atags_to_fdt.c ARM: 8804/1: zImage: atags_to_fdt: add serial-number for ATAG_SERIAL 2018-11-08 10:57:08 +00:00
big-endian.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debug.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
decompress.c ARM: decompressor: fix warning introduced in fortify patch 2018-04-05 23:56:40 +01:00
efi-header.S arm/efi: Split zImage code and data into separate PE/COFF sections 2017-08-21 09:43:51 +02:00
head-sa1100.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head-sharpsl.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head-xscale.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head.S ARM: 8857/1: efi: enable CP15 DMB instructions before cleaning the cache 2019-04-23 17:28:37 +01:00
libfdt_env.h libfdt: Ensure INT_MAX is defined in libfdt_env.h 2018-09-19 15:10:06 -07:00
ll_char_wr.S ARM: 8844/1: use unified assembler in assembly files 2019-02-26 11:26:07 +00:00
Makefile ARM: 8819/1: Remove '-p' from LDFLAGS 2019-02-01 21:44:07 +00:00
misc.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-04-09 09:19:30 -07:00
misc.h ARM: decompressor: fix warning introduced in fortify patch 2018-04-05 23:56:40 +01:00
piggy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string.c ARM: boot: add strrchr function 2018-03-01 12:02:48 -06:00
vmlinux.lds.S ARM: verify size of zImage 2017-12-17 22:14:05 +00:00