diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-14 13:23:10 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-29 11:06:07 +0200 |
commit | 8cacceb7b9e789976c943339ab76317e8964b528 (patch) | |
tree | 183af8610bef3baf0325948e8a5d38bafae00002 /c/src/lib/libbsp/sparc | |
parent | smp: Delete rtems_smp_send_message() (diff) | |
download | rtems-8cacceb7b9e789976c943339ab76317e8964b528.tar.bz2 |
smp: Delete bsp_smp_secondary_cpu_initialize()
Do not call bsp_smp_secondary_cpu_initialize() in
rtems_smp_secondary_cpu_initialize(). This allows more flexibilty in
the BSP low-level code. Specify context requirements for a call to
rtems_smp_secondary_cpu_initialize().
Diffstat (limited to 'c/src/lib/libbsp/sparc')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c index b479ffcdc4..6a9c189ec2 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c @@ -41,11 +41,15 @@ rtems_isr bsp_ap_ipi_isr( rtems_smp_process_interrupt(); } -void bsp_smp_secondary_cpu_initialize(int cpu) +static void leon3_secondary_cpu_initialize(void) { + int cpu = bsp_smp_processor_id(); + sparc_leon3_set_cctrl( 0x80000F ); LEON_Unmask_interrupt(LEON3_MP_IRQ); LEON3_IrqCtrl_Regs->mask[cpu] |= 1 << LEON3_MP_IRQ; + + rtems_smp_secondary_cpu_initialize(); } /* @@ -89,7 +93,7 @@ uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) bsp_ap_stack = _Per_CPU_Information[cpu].interrupt_stack_high - CPU_MINIMUM_STACK_FRAME_SIZE; - bsp_ap_entry = rtems_smp_secondary_cpu_initialize; + bsp_ap_entry = leon3_secondary_cpu_initialize; LEON3_IrqCtrl_Regs->mpstat = 1 << cpu; bsp_smp_delay( 1000000 ); |