diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-24 10:50:39 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-25 10:07:42 +0200 |
commit | 4678d1a8b0e74a12809122ef071324c99e78d7ff (patch) | |
tree | 3236b6cfe13d9b3865715aebd6b07baa2fb2abfa /bsps/sparc | |
parent | score: _SMP_Inter_processor_interrupt_handler() (diff) | |
download | rtems-4678d1a8b0e74a12809122ef071324c99e78d7ff.tar.bz2 |
bsps: bsp_start_on_secondary_processor()
Pass current processor control as first parameter in
bsp_start_on_secondary_processor() and qoriq_start_thread() to make
dependency more explicit.
Diffstat (limited to 'bsps/sparc')
-rw-r--r-- | bsps/sparc/leon3/start/bspsmp.c | 5 | ||||
-rw-r--r-- | bsps/sparc/shared/start/start.S | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/bsps/sparc/leon3/start/bspsmp.c b/bsps/sparc/leon3/start/bspsmp.c index 1ef6e8eb3b..5b939fc765 100644 --- a/bsps/sparc/leon3/start/bspsmp.c +++ b/bsps/sparc/leon3/start/bspsmp.c @@ -35,9 +35,9 @@ static rtems_isr bsp_inter_processor_interrupt( _SMP_Inter_processor_interrupt_handler(_Per_CPU_Get()); } -void bsp_start_on_secondary_processor() +void bsp_start_on_secondary_processor(Per_CPU_Control *cpu_self) { - uint32_t cpu_index_self = _CPU_SMP_Get_current_processor(); + uint32_t cpu_index_self; /* * If data cache snooping is not enabled we terminate using BSP_fatal_exit() @@ -49,6 +49,7 @@ void bsp_start_on_secondary_processor() BSP_fatal_exit( LEON3_FATAL_INVALID_CACHE_CONFIG_SECONDARY_PROCESSOR ); /* Unmask IPI interrupts at Interrupt controller for this CPU */ + cpu_index_self = _Per_CPU_Get_index(cpu_self); LEON3_IrqCtrl_Regs->mask[cpu_index_self] |= 1U << LEON3_mp_irq; _SMP_Start_multitasking_on_secondary_processor(); diff --git a/bsps/sparc/shared/start/start.S b/bsps/sparc/shared/start/start.S index 5bd2937a13..222c5bb164 100644 --- a/bsps/sparc/shared/start/start.S +++ b/bsps/sparc/shared/start/start.S @@ -310,6 +310,7 @@ SYM(hard_reset): andn %sp, 0x0f, %sp ! align stack on 16-byte boundary mov %sp, %fp ! set frame pointer + mv %o0, %g6 call SYM(bsp_start_on_secondary_processor) ! does not return sub %sp, SPARC_MINIMUM_STACK_FRAME_SIZE, %sp .Lbootcpu: |