summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-14 13:23:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-29 11:06:07 +0200
commit8cacceb7b9e789976c943339ab76317e8964b528 (patch)
tree183af8610bef3baf0325948e8a5d38bafae00002 /c/src/lib/libbsp/sparc
parentsmp: Delete rtems_smp_send_message() (diff)
downloadrtems-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.c8
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 );