From 82850b8e82c86173514ddc3264b63f6e67c93417 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 4 Jun 2014 11:07:11 +0200 Subject: bsps/arm: Cortex-A9 MPCore start Invalidate entire branch predictor array. --- c/src/lib/libbsp/arm/shared/include/arm-a9mpcore-start.h | 5 +++++ 1 file changed, 5 insertions(+) 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 @@ -51,6 +51,9 @@ arm_cp15_set_auxiliary_control(uint32_t val); 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); } -- cgit v1.2.3