From c34f94f72df4e88e1c4ea7d7f97f14a9ec6296ef Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 16 Feb 2015 11:55:03 +0100 Subject: score: Add _CPU_SMP_Prepare_start_multitasking() Update #2268. --- c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c | 5 +++++ c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c | 5 +++++ c/src/lib/libbsp/shared/bspsmp.c | 4 ++++ c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c | 13 +++++-------- 4 files changed, 19 insertions(+), 8 deletions(-) (limited to 'c/src') 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; } -- cgit v1.2.3