diff options
author | Dietmar Eggemann <dietmar.eggemann@arm.com> | 2012-02-17 14:03:28 +0000 |
---|---|---|
committer | Dave Martin <dave.martin@linaro.org> | 2012-03-09 11:09:29 +0000 |
commit | b6dfb2b18ffafdbcffc3c8f64ed21d0abfed1aab (patch) | |
tree | 0deb7ebf1cf311765aed851dfedbbf15c3717164 | |
parent | 24ed4da52b33d622deee5fdc6fc4796b24d225c6 (diff) |
Bugfix: Fix race condition during enabling CCI coherency.
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-rwxr-xr-x[-rw-r--r--] | big-little/secure_world/monmode_vectors.s | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/big-little/secure_world/monmode_vectors.s b/big-little/secure_world/monmode_vectors.s index 4fe2ed1..b070e81 100644..100755 --- a/big-little/secure_world/monmode_vectors.s +++ b/big-little/secure_world/monmode_vectors.s @@ -331,18 +331,23 @@ warm_reset FUNCTION MRC p15, 0, r0, c0, c0, 5 UBFX r1, r0, #0, #8 UBFX r2, r0, #8, #8 - CMP r1, #0 - BNE cci_snoop_status MOV r3, #3 CMP r2, #0 BEQ a15_snoops MOV r5, #0x5000 + CMP r1, #0 + BNE cci_snoop_status STR r3, [r4, r5] B cci_snoop_status a15_snoops - MOV r5, #0x4000 + MOV r5, #0x4000 + CMP r1, #0 + BNE cci_snoop_status STR r3, [r4, r5] cci_snoop_status + LDR r0, [r4, r5] + TST r0, #3 + BEQ cci_snoop_status LDR r0, [r4, #0xc] TST r0, #1 BNE cci_snoop_status |