aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJonathan Wright <jonathan.wright@arm.com>2018-03-28 16:55:54 +0100
committerJonathan Wright <jonathan.wright@arm.com>2018-04-12 12:12:56 +0100
commitfe634fa62f9a6182490fb6e3aa6a10959ca7414a (patch)
treeda6743acc62a5adadc851ee0d2945dfe1c49fe5b /lib
parent9ec3921c028932aef7b3470dfbecebd11841f4a6 (diff)
downloadplatform_external_arm-trusted-firmware-fe634fa62f9a6182490fb6e3aa6a10959ca7414a.tar.gz
platform_external_arm-trusted-firmware-fe634fa62f9a6182490fb6e3aa6a10959ca7414a.tar.bz2
platform_external_arm-trusted-firmware-fe634fa62f9a6182490fb6e3aa6a10959ca7414a.zip
Check presence of fix for errata 835769 in Cortex-A53
A fix for errata 835769 may be available in revisions r0p2, r0p3 or r0p4 of the Cortex-A53 processor. The presence of the fix is determined by checking bit 7 in the REVIDR register. If the fix is present we report ERRATA_NOT_APPLIES which silences the erroneous 'missing workaround' warning. Change-Id: Ib75b008e755e9ac648554ca9398024fdbea4a91a Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/cpus/aarch64/cortex_a53.S19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/cpus/aarch64/cortex_a53.S b/lib/cpus/aarch64/cortex_a53.S
index bec5b9e03..3a23e025f 100644
--- a/lib/cpus/aarch64/cortex_a53.S
+++ b/lib/cpus/aarch64/cortex_a53.S
@@ -145,8 +145,23 @@ endfunc check_errata_855873
* This workaround is statically enabled at build time.
*/
func check_errata_835769
- mov x1, #0x04
- b cpu_rev_var_ls
+ cmp x0, #0x04
+ b.hi errata_not_applies
+ /*
+ * Fix potentially available for revisions r0p2, r0p3 and r0p4.
+ * If r0p2, r0p3 or r0p4; check for fix in REVIDR, else exit.
+ */
+ cmp x0, #0x01
+ mov x0, #ERRATA_APPLIES
+ b.ls exit_check_errata_835769
+ /* Load REVIDR. */
+ mrs x1, revidr_el1
+ /* If REVIDR[7] is set (fix exists) set ERRATA_NOT_APPLIES, else exit. */
+ tbz x1, #7, exit_check_errata_835769
+errata_not_applies:
+ mov x0, #ERRATA_NOT_APPLIES
+exit_check_errata_835769:
+ ret
endfunc check_errata_835769
/*