summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 13:38:33 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 14:32:43 +0200
commit1efa1c8389604dcf303b9acfa26c0ae60db9d9b4 (patch)
tree0fe569d6ad62623bf820f1dcd3620227995fae75 /c/src/lib/libbsp/m68k
parentb15cb636e18f7810f529ecb66f99eaf1ac1c18c9 (diff)
downloadrtems-1efa1c8389604dcf303b9acfa26c0ae60db9d9b4.tar.bz2
bsps: Move MPCI support to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/m68k')
-rw-r--r--c/src/lib/libbsp/m68k/mvme147s/Makefile.am8
-rw-r--r--c/src/lib/libbsp/m68k/mvme147s/shmsupp/addrconv.c33
-rw-r--r--c/src/lib/libbsp/m68k/mvme147s/shmsupp/getcfg.c84
-rw-r--r--c/src/lib/libbsp/m68k/mvme147s/shmsupp/lock.c71
-rw-r--r--c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c41
5 files changed, 4 insertions, 233 deletions
diff --git a/c/src/lib/libbsp/m68k/mvme147s/Makefile.am b/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
index 72ba5c5213..b709b9f6d6 100644
--- a/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
+++ b/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
@@ -39,10 +39,10 @@ librtemsbsp_a_SOURCES += ../mvme147/timer/timerisr.S
if HAS_MP
# shmsupp
-librtemsbsp_a_SOURCES += shmsupp/addrconv.c
-librtemsbsp_a_SOURCES += shmsupp/getcfg.c
-librtemsbsp_a_SOURCES += shmsupp/lock.c
-librtemsbsp_a_SOURCES += shmsupp/mpisr.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mvme147s/mpci/addrconv.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mvme147s/mpci/getcfg.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mvme147s/mpci/lock.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/mvme147s/mpci/mpisr.c
endif
librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/shared/cache/cache.c
diff --git a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/addrconv.c b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/addrconv.c
deleted file mode 100644
index 0ed0fdbed1..0000000000
--- a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/addrconv.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Shm_Convert_address
- *
- * This MVME147 has a "normal" view of the VME address space.
- * 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.rtems.org/license/LICENSE.
- *
- * MVME147 port for TNI - Telecom Bretagne
- * by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
- * June 1996
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <shm_driver.h>
-
-void *Shm_Convert_address(
- void *address
-)
-{
- return ( address );
-}
diff --git a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/getcfg.c b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/getcfg.c
deleted file mode 100644
index c549a9fcea..0000000000
--- a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/getcfg.c
+++ /dev/null
@@ -1,84 +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 MVME147.
- *
- * INPUT PARAMETERS:
- * localnode - local node number
- * shmcfg - address of pointer to SHM Config Table
- *
- * OUTPUT PARAMETERS:
- * *shmcfg - pointer to SHM Config Table
- *
- * NOTES: The SIGLP interrupt on the MVME147 is used as an interprocessor
- * interrupt.
- *
- * 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.rtems.org/license/LICENSE.
- *
- * MVME147 port for TNI - Telecom Bretagne
- * by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
- * June 1996
- */
-
-#include <bsp.h>
-#include <rtems.h>
-#include "shm_driver.h"
-
-#define INTERRUPT 1 /* MVME147 target supports both */
-#define POLLING 0 /* polling and interrupt modes */
-
-shm_config_table BSP_shm_cfgtbl;
-
-static uint32_t *BSP_int_address(void)
-{
- uint32_t id, offset;
-
- id = (uint32_t) vme_lcsr->gcsr_base_address;
- offset = (id << 4) & 0xF0;
- offset |= 0xffff0003; /* points to GCSR global 1 */
- return( (uint32_t * ) offset );
-}
-
-void Shm_Get_configuration(
- uint32_t localnode,
- shm_config_table **shmcfg
-)
-{
- /* A shared mem space has bee left between RAM_END and DRAM_END
- on the first node*/
- if (localnode == 1)
- BSP_shm_cfgtbl.base = (vol_u32 *) RAM_END;
- else
- BSP_shm_cfgtbl.base = (vol_u32 *) (DRAM_END + RAM_END);
-
- BSP_shm_cfgtbl.length = DRAM_END - RAM_END;
- BSP_shm_cfgtbl.format = SHM_BIG;
-
- 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
-
-#if (POLLING==1)
- 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;
-#else
- BSP_shm_cfgtbl.poll_intr = INTR_MODE;
- BSP_shm_cfgtbl.Intr.address = BSP_int_address(); /* GCSR global 1 */
- BSP_shm_cfgtbl.Intr.value = 0x01; /* SIGLP */
- BSP_shm_cfgtbl.Intr.length = BYTE;
-#endif
-
- *shmcfg = &BSP_shm_cfgtbl;
-
-}
diff --git a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/lock.c b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/lock.c
deleted file mode 100644
index 129de01fd0..0000000000
--- a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/lock.c
+++ /dev/null
@@ -1,71 +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.rtems.org/license/LICENSE.
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <shm_driver.h>
-
-/*
- * 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
-)
-{
- uint32_t isr_level;
- uint32_t *lockptr = (uint32_t*)&lq_cb->lock;
-
- rtems_interrupt_disable( isr_level );
- Shm_isrstat = isr_level;
- __asm__ volatile( "lockit:" : : );
- __asm__ volatile( "tas %0@" : "=a" (lockptr) : "0" (lockptr) );
- __asm__ volatile( "bne lockit" : : );
-/* should delay */
-}
-
-/*
- * Shm_Unlock
- *
- * Unlock the lock for the specified locked queue.
- */
-
-void Shm_Unlock(
- Shm_Locked_queue_Control *lq_cb
-)
-{
- uint32_t isr_level;
-
- lq_cb->lock = SHM_UNLOCK_VALUE;
- isr_level = Shm_isrstat;
- rtems_interrupt_enable( isr_level );
-}
diff --git a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c
deleted file mode 100644
index 0669538e1b..0000000000
--- a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * @file
- *
- * NOTE: This routine is not used when in polling mode. Either
- * this routine OR Shm_clockisr is used in a particular system.
- */
-
-/*
- * COPYRIGHT (c) 1989-1999, 2016.
- * 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.org/license/LICENSE.
- *
- * MVME147 port for TNI - Telecom Bretagne
- * by Dominique LE CAMPION (Dominique.LECAMPION@enst-bretagne.fr)
- * June 1996
- */
-
-#include <rtems.h>
-#include <bsp.h>
-#include <shm_driver.h>
-
-static rtems_isr Shm_isr_mvme147(rtems_vector_number vector)
-{
- (void) vector;
- Shm_Interrupt_count += 1;
- rtems_multiprocessing_announce();
- vme_gcsr->global_1 = 1; /* clear SIGLP intr */
-}
-
-/*
- * This driver routine sets the SHM interrupt vector to point to the
- * driver's SHM interrupt service routine.
- */
-void Shm_setvec(void)
-{
- /* may need to disable intr */
- set_vector( Shm_isr_mvme147, VME_SIGLP_VECTOR, 1 );
-}