From b75dc0e41cbf394fbafb271ea6853011e926a197 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Thu, 6 Oct 2016 16:54:53 +0100 Subject: 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 --- docs/cpu-specific-build-macros.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs/cpu-specific-build-macros.md') diff --git a/docs/cpu-specific-build-macros.md b/docs/cpu-specific-build-macros.md index 0a575f72..eb23bcd4 100644 --- a/docs/cpu-specific-build-macros.md +++ b/docs/cpu-specific-build-macros.md @@ -60,6 +60,13 @@ For Cortex-A53, following errata build flags are defined : CPU. This needs to be enabled only for revision <= r0p3 of the CPU. From r0p4 and onwards, this errata is enabled by default in hardware. +* `ERRATA_A53_855873`: This applies errata 855873 workaround to Cortex-A53 + CPUs. Though the erratum is present in every revision of the CPU, + this workaround is only applied to CPUs from r0p3 onwards, which feature + a chicken bit in CPUACTLR_EL1 to enable a hardware workaround. + Earlier revisions of the CPU have other errata which require the same + workaround in software, so they should be covered anyway. + For Cortex-A57, following errata build flags are defined : * `ERRATA_A57_806969`: This applies errata 806969 workaround to Cortex-A57 -- cgit v1.2.3