summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared/start/start.S
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/shared/start/start.S')
-rw-r--r--bsps/arm/shared/start/start.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/bsps/arm/shared/start/start.S b/bsps/arm/shared/start/start.S
index 9ebc2818e5..f4880dfcf0 100644
--- a/bsps/arm/shared/start/start.S
+++ b/bsps/arm/shared/start/start.S
@@ -181,6 +181,17 @@ _start:
mov r13, #0
#endif
+#if __ARM_ARCH >= 7
+ /*
+ * Write to BPIALL (Branch Predictor Invalidate All) to invalidate all
+ * branch predictors. There is no need to use BPIALLIS (Branch
+ * Predictor Invalidate All, Inner Shareable) since this code is
+ * executed on all processors used by RTEMS.
+ */
+ mov r0, #0
+ mcr p15, 0, r0, c7, c5, 6
+#endif
+
#ifdef RTEMS_SMP
/* Read MPIDR and get current processor index */
mrc p15, 0, r7, c0, c0, 5