summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/altera-cyclone-v
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-11-19 15:30:24 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-11-20 11:36:03 +0100
commit50440c065e247899ee739d56cb1392c259289031 (patch)
treeea5e398d045d623e990d3efdbdf1d6f15151e5f0 /c/src/lib/libbsp/arm/altera-cyclone-v
parentbsps/arm: L2C 310 drop exclusive cache support (diff)
downloadrtems-50440c065e247899ee739d56cb1392c259289031.tar.bz2
bsps/arm: Enable L2C for Cortex-A9 MPCore BSPs
Diffstat (limited to 'c/src/lib/libbsp/arm/altera-cyclone-v')
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/Makefile.am1
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac6
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspsmp.c47
3 files changed, 7 insertions, 47 deletions
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/Makefile.am b/c/src/lib/libbsp/arm/altera-cyclone-v/Makefile.am
index 6e2d4311b9..3e02200470 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/Makefile.am
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/Makefile.am
@@ -174,6 +174,7 @@ libbsp_a_SOURCES += startup/bspstarthooks.c
libbsp_a_SOURCES += startup/nocache-heap.c
libbsp_a_SOURCES += startup/mmu-config.c
if HAS_SMP
+libbsp_a_SOURCES += ../shared/arm-a9mpcore-smp.c
libbsp_a_SOURCES += startup/bspsmp.c
endif
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac b/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
index fc2b4b08c1..04ebe3af11 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
@@ -24,6 +24,12 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
RTEMS_BSPOPTS_SET([BSP_START_RESET_VECTOR],[*],[])
RTEMS_BSPOPTS_HELP([BSP_START_RESET_VECTOR],[reset vector address for BSP start])
+RTEMS_BSPOPTS_SET([BSP_DATA_CACHE_ENABLED],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_DATA_CACHE_ENABLED],[enable data cache])
+
+RTEMS_BSPOPTS_SET([BSP_INSTRUCTION_CACHE_ENABLED],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_INSTRUCTION_CACHE_ENABLED],[enable instruction cache])
+
RTEMS_BSPOPTS_SET([BSP_ARM_A9MPCORE_PERIPHCLK],[altcycv_devkit*],[200000000U])
RTEMS_BSPOPTS_SET([BSP_ARM_A9MPCORE_PERIPHCLK],[*],[100000000U])
RTEMS_BSPOPTS_HELP([BSP_ARM_A9MPCORE_PERIPHCLK],[ARM Cortex-A9 MPCore PERIPHCLK clock frequency in Hz])
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspsmp.c b/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspsmp.c
index 591e1cd2e8..0d95218c5b 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspsmp.c
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspsmp.c
@@ -12,14 +12,8 @@
* http://www.rtems.org/license/LICENSE.
*/
-#include <assert.h>
-
#include <rtems/score/smpimpl.h>
-#include <libcpu/arm-cp15.h>
-
-#include <bsp/irq.h>
-#include <bsp/linker-symbols.h>
#include <bsp/start.h>
#include <socal/alt_rstmgr.h>
@@ -27,19 +21,6 @@
#include <socal/hps.h>
#include <socal/socal.h>
-static void bsp_inter_processor_interrupt(void *arg)
-{
- _SMP_Inter_processor_interrupt_handler();
-}
-
-uint32_t _CPU_SMP_Initialize(void)
-{
- uint32_t hardware_count = arm_gic_irq_processor_count();
- uint32_t linker_count = (uint32_t) bsp_processor_count;
-
- return hardware_count <= linker_count ? hardware_count : linker_count;
-}
-
bool _CPU_SMP_Start_processor(uint32_t cpu_index)
{
bool started;
@@ -66,31 +47,3 @@ bool _CPU_SMP_Start_processor(uint32_t cpu_index)
return started;
}
-
-void _CPU_SMP_Finalize_initialization(uint32_t cpu_count)
-{
- if (cpu_count > 0) {
- rtems_status_code sc;
-
- sc = rtems_interrupt_handler_install(
- ARM_GIC_IRQ_SGI_0,
- "IPI",
- RTEMS_INTERRUPT_UNIQUE,
- bsp_inter_processor_interrupt,
- NULL
- );
- assert(sc == RTEMS_SUCCESSFUL);
-
- /* Enable unified L2 cache */
- rtems_cache_enable_data();
- }
-}
-
-void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
-{
- arm_gic_irq_generate_software_irq(
- ARM_GIC_IRQ_SGI_0,
- ARM_GIC_IRQ_SOFTWARE_IRQ_TO_ALL_IN_LIST,
- (uint8_t) (1U << target_processor_index)
- );
-}