diff options
author | Jonathan Wright <jonathan.wright@arm.com> | 2018-03-28 16:55:54 +0100 |
---|---|---|
committer | Jonathan Wright <jonathan.wright@arm.com> | 2018-04-12 12:12:56 +0100 |
commit | fe634fa62f9a6182490fb6e3aa6a10959ca7414a (patch) | |
tree | da6743acc62a5adadc851ee0d2945dfe1c49fe5b /lib | |
parent | 9ec3921c028932aef7b3470dfbecebd11841f4a6 (diff) | |
download | platform_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.S | 19 |
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 /* |