diff options
author | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2011-05-25 14:38:45 +0000 |
---|---|---|
committer | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2011-05-25 14:38:45 +0000 |
commit | dc1c997b85f28f71c543057abdb1b006c33479ce (patch) | |
tree | 33b09e40a3bf026dce2655b882924a740022fedd /c | |
parent | 2011-05-25 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-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/ChangeLog | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/Makefile.am | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/smp/bspsmp_wait_for.c | 30 | ||||
-rw-r--r-- | c/src/lib/libbsp/sparc/erc32/Makefile.am | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/sparc/leon2/Makefile.am | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/Makefile.am | 3 |
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 |