summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-06-04 11:07:11 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-06-05 14:55:16 +0200
commit82850b8e82c86173514ddc3264b63f6e67c93417 (patch)
treee8cb550637bbcafac7799d1aa96a9f7c8f42ba33
parente87ccf547b98840f9974b0b45202f62c668ea6ce (diff)
bsps/arm: Cortex-A9 MPCore start
Invalidate entire branch predictor array.
-rw-r--r--c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
index fd0e5cebd1..76a2f32f6d 100644
--- a/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
+++ b/c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h
@@ -52,6 +52,9 @@ BSP_START_TEXT_SECTION static inline void
arm_cp15_set_vector_base_address(void *base);
BSP_START_TEXT_SECTION static inline void
+arm_cp15_branch_predictor_invalidate_all(void);
+
+BSP_START_TEXT_SECTION static inline void
arm_a9mpcore_start_set_vector_base(void)
{
/*
@@ -145,6 +148,8 @@ BSP_START_TEXT_SECTION static inline void arm_a9mpcore_start_hook_0(void)
(volatile a9mpcore_scu *) BSP_ARM_A9MPCORE_SCU_BASE;
uint32_t cpu_id = arm_cortex_a9_get_multiprocessor_cpu_id();
+ arm_cp15_branch_predictor_invalidate_all();
+
if (cpu_id == 0) {
arm_a9mpcore_start_scu_enable(scu);
}