/* void Shm_Get_configuration( localnode, &shmcfg )
|
/* void Shm_Get_configuration( localnode, &shmcfg )
|
*
|
*
|
* This routine initializes, if necessary, and returns a pointer
|
* This routine initializes, if necessary, and returns a pointer
|
* to the Shared Memory Configuration Table for the XXX target.
|
* to the Shared Memory Configuration Table for the XXX target.
|
*
|
*
|
* INPUT PARAMETERS:
|
* INPUT PARAMETERS:
|
* localnode - local node number
|
* localnode - local node number
|
* shmcfg - address of pointer to SHM Config Table
|
* shmcfg - address of pointer to SHM Config Table
|
*
|
*
|
* OUTPUT PARAMETERS:
|
* OUTPUT PARAMETERS:
|
* *shmcfg - pointer to SHM Config Table
|
* *shmcfg - pointer to SHM Config Table
|
*
|
*
|
XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
|
XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
|
* NOTES: The XYZ does not have an interprocessor interrupt.
|
* NOTES: The XYZ does not have an interprocessor interrupt.
|
*
|
*
|
* The following table illustrates the configuration limitations:
|
* The following table illustrates the configuration limitations:
|
*
|
*
|
* BUS MAX
|
* BUS MAX
|
* MODE ENDIAN NODES
|
* MODE ENDIAN NODES
|
* ========= ====== =======
|
* ========= ====== =======
|
* POLLED BIG 2+
|
* POLLED BIG 2+
|
* INTERRUPT **** NOT SUPPORTED ****
|
* INTERRUPT **** NOT SUPPORTED ****
|
*
|
*
|
* COPYRIGHT (c) 1989-1999.
|
* COPYRIGHT (c) 1989-1999.
|
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
*
|
*
|
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
* found in the file LICENSE in this distribution or at
|
* found in the file LICENSE in this distribution or at
|
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
*
|
*
|
* $Id: getcfg.c,v 1.2 2001-09-27 12:00:27 chris Exp $
|
* $Id: getcfg.c,v 1.2 2001-09-27 12:00:27 chris Exp $
|
*/
|
*/
|
|
|
#include <rtems.h>
|
#include <rtems.h>
|
#include <bsp.h>
|
#include <bsp.h>
|
#include <shm_driver.h>
|
#include <shm_driver.h>
|
|
|
/*
|
/*
|
* configured if currently polling of interrupt driven
|
* configured if currently polling of interrupt driven
|
*/
|
*/
|
|
|
#define INTERRUPT 0 /* XXX: */
|
#define INTERRUPT 0 /* XXX: */
|
#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */
|
#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */
|
|
|
|
|
shm_config_table BSP_shm_cfgtbl;
|
shm_config_table BSP_shm_cfgtbl;
|
|
|
void Shm_Get_configuration(
|
void Shm_Get_configuration(
|
rtems_unsigned32 localnode,
|
rtems_unsigned32 localnode,
|
shm_config_table **shmcfg
|
shm_config_table **shmcfg
|
)
|
)
|
{
|
{
|
BSP_shm_cfgtbl.base = 0x0;
|
BSP_shm_cfgtbl.base = 0x0;
|
BSP_shm_cfgtbl.length = 1 * MEGABYTE;
|
BSP_shm_cfgtbl.length = 1 * MEGABYTE;
|
BSP_shm_cfgtbl.format = SHM_BIG;
|
BSP_shm_cfgtbl.format = SHM_BIG;
|
|
|
/*
|
/*
|
* Override cause_intr or shm_isr if your target has
|
* Override cause_intr or shm_isr if your target has
|
* special requirements.
|
* special requirements.
|
*/
|
*/
|
|
|
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt;
|
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt;
|
|
|
#ifdef NEUTRAL_BIG
|
#ifdef NEUTRAL_BIG
|
BSP_shm_cfgtbl.convert = NULL_CONVERT;
|
BSP_shm_cfgtbl.convert = NULL_CONVERT;
|
#else
|
#else
|
BSP_shm_cfgtbl.convert = CPU_swap_u32;
|
BSP_shm_cfgtbl.convert = CPU_swap_u32;
|
#endif
|
#endif
|
|
|
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
|
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
|
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
|
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
|
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
|
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
|
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
|
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
|
|
|
*shmcfg = &BSP_shm_cfgtbl;
|
*shmcfg = &BSP_shm_cfgtbl;
|
}
|
}
|
|
|