summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-12 09:23:51 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-12 09:23:51 +0200
commit6c5c2f39d05543c2d30e8fc44e93dd961c68e43d (patch)
tree00f605882ef2e8290dee8e9a993eefd213c48a50 /c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
parentbsps: Use standard file name for BSP support (diff)
downloadrtems-6c5c2f39d05543c2d30e8fc44e93dd961c68e43d.tar.bz2
bsps: Use bsp_start_on_secondary_processor()
Use a standard function for startup on secondary processors.
Diffstat (limited to 'c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
index bb5313201c..6eec341f93 100644
--- a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
+++ b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
@@ -14,6 +14,7 @@
*/
#include <bsp.h>
+#include <bsp/bootcard.h>
#include <leon.h>
#include <rtems/bspIo.h>
#include <rtems/score/smpimpl.h>
@@ -33,11 +34,13 @@ static rtems_isr bsp_inter_processor_interrupt(
_SMP_Inter_processor_interrupt_handler();
}
-void leon3_secondary_cpu_initialize(uint32_t cpu_index)
+void bsp_start_on_secondary_processor()
{
+ uint32_t cpu_index_self = _CPU_SMP_Get_current_processor();
+
leon3_set_cache_control_register(0x80000F);
/* Unmask IPI interrupts at Interrupt controller for this CPU */
- LEON3_IrqCtrl_Regs->mask[cpu_index] |= 1U << LEON3_MP_IRQ;
+ LEON3_IrqCtrl_Regs->mask[cpu_index_self] |= 1U << LEON3_MP_IRQ;
_SMP_Start_multitasking_on_secondary_processor();
}