summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-17 14:31:32 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-19 09:59:41 +0100
commitf8ff2a011cad523453cff8208b3dbd82aa66a110 (patch)
tree85779c8bf17337c0a734460cd50013d87afb7989 /c
parentscore: Rename bsp_smp_initialize() (diff)
downloadrtems-f8ff2a011cad523453cff8208b3dbd82aa66a110.tar.bz2
score: Delete bsp_smp_broadcast_interrupt()
Since the per-CPU SMP lock must be acquired and released to send the message a single interrupt broadcast operations offers no benefits. If synchronization is required, then a SMP barrier must be used anyway.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c12
-rw-r--r--c/src/lib/libbsp/i386/shared/smp/smp-imps.c6
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/smp.c6
-rw-r--r--c/src/lib/libbsp/shared/smp/smp_stub.c16
-rw-r--r--c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c16
5 files changed, 1 insertions, 55 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 9f465aa797..bf776c5aab 100644
--- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c
+++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c
@@ -44,18 +44,6 @@ uint32_t _CPU_SMP_Initialize(uint32_t configured_cpu_count)
return used_cpu_count;
}
-void bsp_smp_broadcast_interrupt(void)
-{
- /*
- * FIXME: This broadcasts the interrupt also to processors not used by RTEMS.
- */
- rtems_status_code sc = arm_gic_irq_generate_software_irq(
- ARM_GIC_IRQ_SGI_0,
- ARM_GIC_IRQ_SOFTWARE_IRQ_TO_ALL_EXCEPT_SELF,
- 0xff
- );
-}
-
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
rtems_status_code sc = arm_gic_irq_generate_software_irq(
diff --git a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
index a2dbc32fea..6170beb1cb 100644
--- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
+++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c
@@ -803,9 +803,3 @@ void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
send_ipi( target_processor_index, 0x30 );
}
-
-void bsp_smp_broadcast_interrupt(void)
-{
- /* Single broadcast interrupt */
- send_ipi( 0, LAPIC_ICR_DS_ALLEX | 0x30 );
-}
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
index ea9d1cbb45..d124303f15 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
@@ -163,12 +163,6 @@ uint32_t _CPU_SMP_Initialize(uint32_t configured_cpu_count)
return cores;
}
-void bsp_smp_broadcast_interrupt(void)
-{
- uint32_t self = ppc_processor_id();
- qoriq.pic.per_cpu [self].ipidr [IPI_INDEX].reg = ALL_CORES;
-}
-
void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
{
uint32_t self = ppc_processor_id();
diff --git a/c/src/lib/libbsp/shared/smp/smp_stub.c b/c/src/lib/libbsp/shared/smp/smp_stub.c
index b4a9cc3370..037a45ca7e 100644
--- a/c/src/lib/libbsp/shared/smp/smp_stub.c
+++ b/c/src/lib/libbsp/shared/smp/smp_stub.c
@@ -9,11 +9,7 @@
* http://www.rtems.com/license/LICENSE.
*/
-#include <rtems.h>
-#include <bsp.h>
-#include <rtems/bspIo.h>
-#include <rtems/bspsmp.h>
-#include <stdlib.h>
+#include <rtems/score/cpu.h>
uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count )
{
@@ -21,16 +17,6 @@ uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count )
return 1;
}
-void bsp_smp_broadcast_interrupt(void)
-{
-}
-
-void bsp_smp_broadcast_message(
- uint32_t message
-)
-{
-}
-
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
}
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 baf4cfdba1..dccca812d9 100644
--- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
+++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
@@ -93,19 +93,3 @@ void _CPU_SMP_Send_interrupt(uint32_t target_processor_index)
/* send interrupt to destination CPU */
LEON3_IrqCtrl_Regs->force[target_processor_index] = 1 << LEON3_MP_IRQ;
}
-
-void bsp_smp_broadcast_interrupt(void)
-{
- uint32_t dest_cpu;
- uint32_t cpu;
- uint32_t max_cpus;
-
- cpu = rtems_smp_get_current_processor();
- max_cpus = rtems_smp_get_processor_count();
-
- for ( dest_cpu=0 ; dest_cpu < max_cpus ; dest_cpu++ ) {
- if ( cpu != dest_cpu ) {
- _CPU_SMP_Send_interrupt( dest_cpu );
- }
- }
-}