forked from Imagelibrary/rtems
2001-01-08 Joel Sherrill <joel@OARcorp.com>
* Shared memory support removed since it was non-functional. * shmsupp/.cvsignore, shmsupp/Makefile.am, shmsupp/addrconv.c, shmsupp/getcfg.c, shmsupp/lock.c, shmsupp/mpisr.c: Removed. * configure.in, Makefile.am, wrapup/Makefile.am: Modified to reflect above.
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
2001-01-08 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* Shared memory support removed since it was non-functional.
|
||||||
|
* shmsupp/.cvsignore, shmsupp/Makefile.am, shmsupp/addrconv.c,
|
||||||
|
shmsupp/getcfg.c, shmsupp/lock.c, shmsupp/mpisr.c: Removed.
|
||||||
|
* configure.in, Makefile.am, wrapup/Makefile.am: Modified to
|
||||||
|
reflect above.
|
||||||
|
|
||||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
|
|||||||
|
|
||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
SUBDIRS = include start startup console shmsupp wrapup
|
SUBDIRS = include start startup console wrapup
|
||||||
|
|
||||||
include $(top_srcdir)/../../bsp.am
|
include $(top_srcdir)/../../bsp.am
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,8 @@ RTEMS_CANONICALIZE_TOOLS
|
|||||||
RTEMS_ENV_RTEMSBSP
|
RTEMS_ENV_RTEMSBSP
|
||||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||||
RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
||||||
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
|
|
||||||
RTEMS_CANONICAL_HOST
|
RTEMS_CANONICAL_HOST
|
||||||
|
|
||||||
AM_CONDITIONAL(HAS_MP,test "$HAS_MP" = "yes")
|
|
||||||
|
|
||||||
RTEMS_PROJECT_ROOT
|
RTEMS_PROJECT_ROOT
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
# Explicitly list all Makefiles here
|
||||||
@@ -29,7 +26,6 @@ AC_OUTPUT(
|
|||||||
Makefile
|
Makefile
|
||||||
console/Makefile
|
console/Makefile
|
||||||
include/Makefile
|
include/Makefile
|
||||||
shmsupp/Makefile
|
|
||||||
start/Makefile
|
start/Makefile
|
||||||
startup/Makefile
|
startup/Makefile
|
||||||
wrapup/Makefile)
|
wrapup/Makefile)
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
##
|
|
||||||
## $Id$
|
|
||||||
##
|
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign 1.4
|
|
||||||
|
|
||||||
PGM = ${ARCH}/shmsupp.rel
|
|
||||||
|
|
||||||
## C source names
|
|
||||||
C_FILES = addrconv.c getcfg.c lock.c mpisr.c
|
|
||||||
C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o)
|
|
||||||
|
|
||||||
OBJS = $(C_O_FILES)
|
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
|
||||||
include $(top_srcdir)/../../../../../../automake/compile.am
|
|
||||||
include $(top_srcdir)/../../../../../../automake/lib.am
|
|
||||||
|
|
||||||
#
|
|
||||||
# (OPTIONAL) Add local stuff here using +=
|
|
||||||
#
|
|
||||||
|
|
||||||
$(PGM): ${OBJS}
|
|
||||||
$(make-rel)
|
|
||||||
|
|
||||||
if HAS_MP
|
|
||||||
all-local: ${ARCH} $(PGM)
|
|
||||||
else
|
|
||||||
all-local:
|
|
||||||
endif
|
|
||||||
|
|
||||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
|
||||||
|
|
||||||
EXTRA_DIST = addrconv.c getcfg.c lock.c mpisr.c
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../../../automake/local.am
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
/* Shm_Convert_address
|
|
||||||
*
|
|
||||||
* No address range conversion is required.
|
|
||||||
*
|
|
||||||
* Input parameters:
|
|
||||||
* address - address to convert
|
|
||||||
*
|
|
||||||
* Output parameters:
|
|
||||||
* returns - converted address
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <shm_driver.h>
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static char _sccsid[] = "@(#)addrconv.c 04/08/96 1.1\n";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void *Shm_Convert_address(
|
|
||||||
void *address
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return ( address );
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
/* void Shm_Get_configuration( localnode, &shmcfg )
|
|
||||||
*
|
|
||||||
* This routine initializes, if necessary, and returns a pointer
|
|
||||||
* to the Shared Memory Configuration Table for the XXX target.
|
|
||||||
*
|
|
||||||
* INPUT PARAMETERS:
|
|
||||||
* localnode - local node number
|
|
||||||
* shmcfg - address of pointer to SHM Config Table
|
|
||||||
*
|
|
||||||
* OUTPUT PARAMETERS:
|
|
||||||
* *shmcfg - pointer to SHM Config Table
|
|
||||||
*
|
|
||||||
XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
|
|
||||||
* NOTES: The XYZ does not have an interprocessor interrupt.
|
|
||||||
*
|
|
||||||
* The following table illustrates the configuration limitations:
|
|
||||||
*
|
|
||||||
* BUS MAX
|
|
||||||
* MODE ENDIAN NODES
|
|
||||||
* ========= ====== =======
|
|
||||||
* POLLED BIG 2+
|
|
||||||
* INTERRUPT **** NOT SUPPORTED ****
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <shm_driver.h>
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static char _sccsid[] = "@(#)getcfg.c 04/08/96 1.1\n";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* configured if currently polling of interrupt driven
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define INTERRUPT 0 /* XXX: */
|
|
||||||
#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */
|
|
||||||
|
|
||||||
|
|
||||||
shm_config_table BSP_shm_cfgtbl;
|
|
||||||
|
|
||||||
void Shm_Get_configuration(
|
|
||||||
rtems_unsigned32 localnode,
|
|
||||||
shm_config_table **shmcfg
|
|
||||||
)
|
|
||||||
{
|
|
||||||
BSP_shm_cfgtbl.base = 0x0;
|
|
||||||
BSP_shm_cfgtbl.length = 1 * MEGABYTE;
|
|
||||||
BSP_shm_cfgtbl.format = SHM_BIG;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Override cause_intr or shm_isr if your target has
|
|
||||||
* special requirements.
|
|
||||||
*/
|
|
||||||
|
|
||||||
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt;
|
|
||||||
|
|
||||||
#ifdef NEUTRAL_BIG
|
|
||||||
BSP_shm_cfgtbl.convert = NULL_CONVERT;
|
|
||||||
#else
|
|
||||||
BSP_shm_cfgtbl.convert = CPU_swap_u32;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
|
|
||||||
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
|
|
||||||
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
|
|
||||||
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
|
|
||||||
|
|
||||||
*shmcfg = &BSP_shm_cfgtbl;
|
|
||||||
}
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
/* Shared Memory Lock Routines
|
|
||||||
*
|
|
||||||
* This shared memory locked queue support routine need to be
|
|
||||||
* able to lock the specified locked queue. Interrupts are
|
|
||||||
* disabled while the queue is locked to prevent preemption
|
|
||||||
* and deadlock when two tasks poll for the same lock.
|
|
||||||
* previous level.
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <shm_driver.h>
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static char _sccsid[] = "@(#)lock.c 04/08/96 1.1\n";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shm_Initialize_lock
|
|
||||||
*
|
|
||||||
* Initialize the lock for the specified locked queue.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Shm_Initialize_lock(
|
|
||||||
Shm_Locked_queue_Control *lq_cb
|
|
||||||
)
|
|
||||||
{
|
|
||||||
lq_cb->lock = LQ_UNLOCKED;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* void _Shm_Lock( &lq_cb )
|
|
||||||
*
|
|
||||||
* This shared memory locked queue support routine locks the
|
|
||||||
* specified locked queue. It disables interrupts to prevent
|
|
||||||
* a deadlock condition.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Shm_Lock(
|
|
||||||
Shm_Locked_queue_Control *lq_cb
|
|
||||||
)
|
|
||||||
{
|
|
||||||
rtems_unsigned32 isr_level;
|
|
||||||
rtems_unsigned32 *lockptr = &lq_cb->lock;
|
|
||||||
rtems_unsigned32 lock_value;
|
|
||||||
|
|
||||||
lock_value = 0x80000000;
|
|
||||||
rtems_interrupt_disable( isr_level );
|
|
||||||
|
|
||||||
Shm_isrstat = isr_level;
|
|
||||||
while ( lock_value ) {
|
|
||||||
asm volatile( ""
|
|
||||||
: "=r" (lockptr), "=r" (lock_value)
|
|
||||||
: "0" (lockptr), "1" (lock_value)
|
|
||||||
);
|
|
||||||
/*
|
|
||||||
* If not available, then may want to delay to reduce load on lock.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ( lock_value )
|
|
||||||
delay( 10 ); /* approximately 10 microseconds */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shm_Unlock
|
|
||||||
*
|
|
||||||
* Unlock the lock for the specified locked queue.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Shm_Unlock(
|
|
||||||
Shm_Locked_queue_Control *lq_cb
|
|
||||||
)
|
|
||||||
{
|
|
||||||
rtems_unsigned32 isr_level;
|
|
||||||
|
|
||||||
lq_cb->lock = SHM_UNLOCK_VALUE;
|
|
||||||
isr_level = Shm_isrstat;
|
|
||||||
rtems_interrupt_enable( isr_level );
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
/* Shm_isr_nobsp()
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <shm_driver.h>
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static char _sccsid[] = "@(#)mpisr.c 04/08/96 1.1\n";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rtems_isr Shm_isr_nobsp( void )
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* If this routine has to do anything other than the mpisr.c
|
|
||||||
* found in the generic driver, then copy the contents of the generic
|
|
||||||
* mpisr.c and augment it to satisfy this particular board. Typically,
|
|
||||||
* you need to have a board specific mpisr.c when the interrupt
|
|
||||||
* must be cleared.
|
|
||||||
*
|
|
||||||
* If the generic mpisr.c satisifies your requirements, then
|
|
||||||
* remove this routine from your target's shmsupp/mpisb.c file.
|
|
||||||
* Then simply install the generic Shm_isr in the Shm_setvec
|
|
||||||
* routine below.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Shm_setvec
|
|
||||||
*
|
|
||||||
* This driver routine sets the SHM interrupt vector to point to the
|
|
||||||
* driver's SHM interrupt service routine.
|
|
||||||
*
|
|
||||||
* Input parameters: NONE
|
|
||||||
*
|
|
||||||
* Output parameters: NONE
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Shm_setvec( void )
|
|
||||||
{
|
|
||||||
/* XXX: FIX ME!!! */
|
|
||||||
}
|
|
||||||
@@ -4,11 +4,6 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign 1.4
|
AUTOMAKE_OPTIONS = foreign 1.4
|
||||||
|
|
||||||
if HAS_MP
|
|
||||||
GENERIC_MP_REL_PIECES = shmdr
|
|
||||||
endif
|
|
||||||
GENERIC_PIECES += $(GENERIC_MP_REL_PIECES)
|
|
||||||
|
|
||||||
if HAS_MP
|
if HAS_MP
|
||||||
MP_BSP_O_FILES = shmsupp
|
MP_BSP_O_FILES = shmsupp
|
||||||
endif
|
endif
|
||||||
@@ -18,8 +13,7 @@ CPU_FILES = clock timer
|
|||||||
|
|
||||||
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
||||||
OBJS = $(foreach piece, $(BSP_FILES), $(wildcard ../$(piece)/$(ARCH)/*.o)) \
|
OBJS = $(foreach piece, $(BSP_FILES), $(wildcard ../$(piece)/$(ARCH)/*.o)) \
|
||||||
$(foreach piece, $(CPU_FILES), ../../../../libcpu/$(RTEMS_CPU)/$(piece)/$(ARCH)/$(piece).rel) \
|
$(foreach piece, $(CPU_FILES), ../../../../libcpu/$(RTEMS_CPU)/$(piece)/$(ARCH)/$(piece).rel)
|
||||||
$(foreach piece, $(GENERIC_PIECES), ../../../$(piece)/$(ARCH)/$(piece).rel)
|
|
||||||
LIB = $(ARCH)/libbsp.a
|
LIB = $(ARCH)/libbsp.a
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
|
|||||||
Reference in New Issue
Block a user