summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJennifer Averett <Jennifer.Averett@OARcorp.com>2011-05-25 14:38:45 +0000
committerJennifer Averett <Jennifer.Averett@OARcorp.com>2011-05-25 14:38:45 +0000
commitdc1c997b85f28f71c543057abdb1b006c33479ce (patch)
tree33b09e40a3bf026dce2655b882924a740022fedd /c
parent2011-05-25 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-dc1c997b85f28f71c543057abdb1b006c33479ce.tar.bz2
2011-05-25 Jennifer Averett <Jennifer.Averett@OARcorp.com>
PR 1792/bsps * src/lib/libbsp/i386/pc386/Makefile.am, src/lib/libbsp/sparc/erc32/Makefile.am, src/lib/libbsp/sparc/leon2/Makefile.am, src/lib/libbsp/sparc/leon3/Makefile.am: Added a generic smp wait method to sparc and i386 bsps. * src/lib/libbsp/shared/smp/bspsmp_wait_for.c: New file.
Diffstat (limited to 'c')
-rw-r--r--c/ChangeLog10
-rw-r--r--c/src/lib/libbsp/i386/pc386/Makefile.am3
-rw-r--r--c/src/lib/libbsp/shared/smp/bspsmp_wait_for.c30
-rw-r--r--c/src/lib/libbsp/sparc/erc32/Makefile.am5
-rw-r--r--c/src/lib/libbsp/sparc/leon2/Makefile.am3
-rw-r--r--c/src/lib/libbsp/sparc/leon3/Makefile.am3
6 files changed, 49 insertions, 5 deletions
diff --git a/c/ChangeLog b/c/ChangeLog
index d339c39f96..13d3dd0040 100644
--- a/c/ChangeLog
+++ b/c/ChangeLog
@@ -1,3 +1,13 @@
+2011-05-25 Jennifer Averett <Jennifer.Averett@OARcorp.com>
+
+ PR 1792/bsps
+ * src/lib/libbsp/i386/pc386/Makefile.am,
+ src/lib/libbsp/sparc/erc32/Makefile.am,
+ src/lib/libbsp/sparc/leon2/Makefile.am,
+ src/lib/libbsp/sparc/leon3/Makefile.am: Added a generic smp wait
+ method to sparc and i386 bsps.
+ * src/lib/libbsp/shared/smp/bspsmp_wait_for.c: New file.
+
2011-04-21 Jennifer Averett <Jennifer.Averett@OARcorp.com
PR 1777/cpukit
diff --git a/c/src/lib/libbsp/i386/pc386/Makefile.am b/c/src/lib/libbsp/i386/pc386/Makefile.am
index 8c1806b30d..9c79c02ac2 100644
--- a/c/src/lib/libbsp/i386/pc386/Makefile.am
+++ b/c/src/lib/libbsp/i386/pc386/Makefile.am
@@ -109,7 +109,8 @@ libbsp_a_SOURCES += timer/timer.c timer/timerisr.S
libbsp_a_SOURCES += ide/idecfg.c ide/ide.c
if HAS_SMP
-libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
+libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c \
+ ../../shared/smp/bspsmp_wait_for.c
endif
if HAS_NETWORKING
diff --git a/c/src/lib/libbsp/shared/smp/bspsmp_wait_for.c b/c/src/lib/libbsp/shared/smp/bspsmp_wait_for.c
new file mode 100644
index 0000000000..19b04fe5c9
--- /dev/null
+++ b/c/src/lib/libbsp/shared/smp/bspsmp_wait_for.c
@@ -0,0 +1,30 @@
+/*
+ *
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id
+ */
+
+void rtems_bsp_delay( int usec );
+
+void bsp_smp_wait_for(
+ volatile unsigned int *address,
+ unsigned int desired,
+ int maximum_usecs
+)
+{
+ int iterations;
+ volatile unsigned int *p = address;
+
+ for (iterations=0 ; iterations < maximum_usecs ; iterations++ ) {
+ if ( *p == desired )
+ break;
+
+ rtems_bsp_delay( 1 );
+ }
+}
diff --git a/c/src/lib/libbsp/sparc/erc32/Makefile.am b/c/src/lib/libbsp/sparc/erc32/Makefile.am
index 6a77d0a16d..05d8b8ea92 100644
--- a/c/src/lib/libbsp/sparc/erc32/Makefile.am
+++ b/c/src/lib/libbsp/sparc/erc32/Makefile.am
@@ -1,5 +1,5 @@
##
-## $Id$
+## $Id: Makefile.am,v 1.54 2011/05/23 17:41:30 jennifer Exp
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
@@ -55,7 +55,8 @@ libbsp_a_SOURCES += clock/ckinit.c ../../../shared/clockdrv_shell.h
libbsp_a_SOURCES += timer/timer.c
if HAS_SMP
-libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
+libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c \
+ ../../shared/smp/bspsmp_wait_for.c
endif
if HAS_NETWORKING
diff --git a/c/src/lib/libbsp/sparc/leon2/Makefile.am b/c/src/lib/libbsp/sparc/leon2/Makefile.am
index 6de6cd82a7..26103db0be 100644
--- a/c/src/lib/libbsp/sparc/leon2/Makefile.am
+++ b/c/src/lib/libbsp/sparc/leon2/Makefile.am
@@ -100,7 +100,8 @@ libbsp_a_SOURCES += ../../sparc/shared/i2c/i2cmst.c
libbsp_a_SOURCES += timer/timer.c
if HAS_SMP
-libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
+libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c \
+ ../../shared/smp/bspsmp_wait_for.c
endif
if HAS_NETWORKING
diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am
index ec14baea0c..6a28ccd8bb 100644
--- a/c/src/lib/libbsp/sparc/leon3/Makefile.am
+++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am
@@ -94,7 +94,8 @@ libbsp_a_SOURCES += ../../sparc/shared/i2c/i2cmst.c
libbsp_a_SOURCES += timer/timer.c
if HAS_SMP
-libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
+libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c \
+ ../../shared/smp/bspsmp_wait_for.c
endif
if HAS_NETWORKING