Add workaround for ARM Cortex-A53 erratum 855873
authorAndre Przywara <andre.przywara@arm.com>
Thu, 6 Oct 2016 15:54:53 +0000 (16:54 +0100)
committerAndre Przywara <andre.przywara@arm.com>
Mon, 20 Mar 2017 10:57:46 +0000 (10:57 +0000)
commitb75dc0e41cbf394fbafb271ea6853011e926a197
tree9501cb13945c36cde5055faccc905d1c0076da2f
parent3944adca5943a050ca7e7e9cc802a9ae04dec186
Add workaround for ARM Cortex-A53 erratum 855873

ARM erratum 855873 applies to all Cortex-A53 CPUs.
The recommended workaround is to promote "data cache clean"
instructions to "data cache clean and invalidate" instructions.
For core revisions of r0p3 and later this can be done by setting a bit
in the CPUACTLR_EL1 register, so that hardware takes care of the promotion.
As CPUACTLR_EL1 is both IMPLEMENTATION DEFINED and can be trapped to EL3,
we set the bit in firmware.
Also we dump this register upon crashing to provide more debug
information.

Enable the workaround for the Juno boards.

Change-Id: I3840114291958a406574ab6c49b01a9d9847fec8
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
docs/cpu-specific-build-macros.md
include/lib/cpus/aarch64/cortex_a53.h
lib/cpus/aarch64/cortex_a53.S
lib/cpus/aarch64/cpu_helpers.S
lib/cpus/cpu-ops.mk
plat/arm/board/juno/platform.mk