diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-11-19 15:30:24 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-11-20 11:36:03 +0100 |
commit | 50440c065e247899ee739d56cb1392c259289031 (patch) | |
tree | ea5e398d045d623e990d3efdbdf1d6f15151e5f0 /c/src/lib/libbsp/arm/shared | |
parent | bsps/arm: L2C 310 drop exclusive cache support (diff) | |
download | rtems-50440c065e247899ee739d56cb1392c259289031.tar.bz2 |
bsps/arm: Enable L2C for Cortex-A9 MPCore BSPs
Diffstat (limited to 'c/src/lib/libbsp/arm/shared')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c index 6f4af46343..f755621c9d 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c @@ -19,6 +19,7 @@ #include <libcpu/arm-cp15.h> #include <bsp/irq.h> +#include <bsp/linker-symbols.h> static void bsp_inter_processor_interrupt(void *arg) { @@ -27,16 +28,10 @@ static void bsp_inter_processor_interrupt(void *arg) uint32_t _CPU_SMP_Initialize(void) { - return arm_gic_irq_processor_count(); -} - -bool _CPU_SMP_Start_processor(uint32_t cpu_index) -{ - (void) cpu_index; + uint32_t hardware_count = arm_gic_irq_processor_count(); + uint32_t linker_count = (uint32_t) bsp_processor_count; - /* Nothing to do */ - - return true; + return hardware_count <= linker_count ? hardware_count : linker_count; } void _CPU_SMP_Finalize_initialization(uint32_t cpu_count) @@ -52,6 +47,11 @@ void _CPU_SMP_Finalize_initialization(uint32_t cpu_count) NULL ); assert(sc == RTEMS_SUCCESSFUL); + +#if defined(BSP_DATA_CACHE_ENABLED) || defined(BSP_INSTRUCTION_CACHE_ENABLED) + /* Enable unified L2 cache */ + rtems_cache_enable_data(); +#endif } } |