summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoel Hutton <Joel.Hutton@Arm.com>2019-04-09 14:45:34 +0100
committerJoel Hutton <Joel.Hutton@arm.com>2019-04-10 10:57:58 +0100
commitf999faca06e8ff5d6d23a08d844c6a4ad38e3000 (patch)
tree0a4bdd798e26ca9e54018ce623252bb611ce6536 /lib
parenta738e1554c2daf7511af3543addd07c956268d14 (diff)
Add note about erratum 814220 for A7
On Cortex-A7 an L2 set/way cache maintenance operation can overtake an L1 set/way cache maintenance operation. The mitigation for this is to use a `DSB` instruction before changing cache. The cache cleaning code happens to already be doing this, so only a comment was added. Change-Id: Ia1ffb8ca8b6bbbba422ed6f6818671ef9fe02d90 Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/aarch32/cache_helpers.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/aarch32/cache_helpers.S b/lib/aarch32/cache_helpers.S
index 810af0f0..432a3033 100644
--- a/lib/aarch32/cache_helpers.S
+++ b/lib/aarch32/cache_helpers.S
@@ -124,7 +124,9 @@ loop3:
level_done:
add r1, r1, #2 // increment the cache number
cmp r3, r1
- dsb sy // ensure completion of previous cache maintenance instruction
+ // Ensure completion of previous cache maintenance instruction. Note
+ // this also mitigates erratum 814220 on Cortex-A7
+ dsb sy
bhi loop1
mov r6, #0