diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cpus/aarch64/cpu_helpers.S | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/cpus/aarch64/cpu_helpers.S b/lib/cpus/aarch64/cpu_helpers.S index f053d44f..5680bce6 100644 --- a/lib/cpus/aarch64/cpu_helpers.S +++ b/lib/cpus/aarch64/cpu_helpers.S @@ -120,7 +120,19 @@ func init_cpu_ops cmp x0, #0 ASM_ASSERT(ne) #endif - str x0, [x6, #CPU_DATA_CPU_OPS_PTR] + str x0, [x6, #CPU_DATA_CPU_OPS_PTR]! + + /* + * Make sure that any pre-fetched cache copies are invalidated. + * Ensure that we are running with cache disable else we + * invalidate our own update. + */ +#if ASM_ASSERTION + mrs x1, sctlr_el3 + tst x1, #SCTLR_C_BIT + ASM_ASSERT(eq) +#endif + dc ivac, x6 mov x30, x10 1: ret |