summaryrefslogtreecommitdiffstats
path: root/c/src/lib
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-02-16 11:55:03 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-02-17 09:41:27 +0100
commitc34f94f72df4e88e1c4ea7d7f97f14a9ec6296ef (patch)
treebbd8bc6206b6a23709b39a5b0c0d951512b3b33c /c/src/lib
parentIMFS: Implement variable length node names (diff)
downloadrtems-c34f94f72df4e88e1c4ea7d7f97f14a9ec6296ef.tar.bz2
score: Add _CPU_SMP_Prepare_start_multitasking()
Update #2268.
Diffstat (limited to 'c/src/lib')
-rw-r--r--c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c5
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c5
-rw-r--r--c/src/lib/libbsp/shared/bspsmp.c4
-rw-r--r--c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c13
4 files changed, 19 insertions, 8 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 f755621c9d..f2c0201c2c 100644
--- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c
+++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c
@@ -55,6 +55,11 @@ void _CPU_SMP_Finalize_initialization(uint32_t cpu_count)
}
}
+void _CPU_SMP_Prepare_start_multitasking( void )
+{
+ /* Do nothing */
+}
+
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
arm_gic_irq_generate_software_irq(
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c
index 80764fec2c..0b0743b35e 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c
@@ -228,6 +228,11 @@ void _CPU_SMP_Finalize_initialization(uint32_t cpu_count)
}
}
+void _CPU_SMP_Prepare_start_multitasking(void)
+{
+ /* Do nothing */
+}
+
void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
{
qoriq.pic.ipidr [IPI_INDEX].reg = 1U << target_processor_index;
diff --git a/c/src/lib/libbsp/shared/bspsmp.c b/c/src/lib/libbsp/shared/bspsmp.c
index 3dc44b1d3a..f2439408a3 100644
--- a/c/src/lib/libbsp/shared/bspsmp.c
+++ b/c/src/lib/libbsp/shared/bspsmp.c
@@ -26,6 +26,10 @@ void _CPU_SMP_Finalize_initialization( uint32_t cpu_count )
{
}
+void _CPU_SMP_Prepare_start_multitasking( void )
+{
+}
+
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
}
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
index ec83e31a7a..ef9cd39128 100644
--- a/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
+++ b/c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
@@ -86,16 +86,13 @@ void _CPU_SMP_Finalize_initialization( uint32_t cpu_count )
/* Nothing to do */
}
-void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
+void _CPU_SMP_Prepare_start_multitasking( void )
{
- /* send interrupt to destination CPU */
- LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_mp_irq;
+ _CPU_cache_invalidate_entire_instruction();
}
-void _LEON3_Start_multitasking(
- Context_Control *heir
-)
+void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
{
- _CPU_cache_invalidate_entire_instruction();
- _CPU_Context_Restart_self( heir );
+ /* send interrupt to destination CPU */
+ LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_mp_irq;
}