summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-26 12:10:15 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-26 15:12:48 +0200
commitfc2ec62978ac749d9f731fbc768e48e4f0c4a8f9 (patch)
tree32c2dfee817f51dfc689ddd2e132873b99360265 /c/src/lib/libcpu
parentbsps/m68k: Remove unused define (diff)
downloadrtems-fc2ec62978ac749d9f731fbc768e48e4f0c4a8f9.tar.bz2
bsps/m68k: Move libcpu content to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libcpu')
-rw-r--r--c/src/lib/libcpu/m68k/Makefile.am14
-rw-r--r--c/src/lib/libcpu/m68k/shared/misc/m68kidle.c34
-rw-r--r--c/src/lib/libcpu/m68k/shared/misc/memProbe.c105
3 files changed, 0 insertions, 153 deletions
diff --git a/c/src/lib/libcpu/m68k/Makefile.am b/c/src/lib/libcpu/m68k/Makefile.am
index f012d5d0db..b0bbc36107 100644
--- a/c/src/lib/libcpu/m68k/Makefile.am
+++ b/c/src/lib/libcpu/m68k/Makefile.am
@@ -4,20 +4,6 @@ include $(top_srcdir)/../../../automake/compile.am
noinst_PROGRAMS =
-if shared
-
-## shared/misc
-
-if mcf5272
-M68K_CPPFLAGS = -Dmcf5272
-endif
-
-noinst_PROGRAMS += shared/misc.rel
-shared_misc_rel_SOURCES = shared/misc/m68kidle.c shared/misc/memProbe.c
-shared_misc_rel_CPPFLAGS = $(AM_CPPFLAGS) $(M68K_CPPFLAGS)
-shared_misc_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-endif
-
if m68040
## m68040/fpsp
noinst_PROGRAMS += m68040/fpsp.rel
diff --git a/c/src/lib/libcpu/m68k/shared/misc/m68kidle.c b/c/src/lib/libcpu/m68k/shared/misc/m68kidle.c
deleted file mode 100644
index 96e1288095..0000000000
--- a/c/src/lib/libcpu/m68k/shared/misc/m68kidle.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Motorola MC68xxx Dependent Idle Body Source
- *
- * This kernel routine is the idle thread. The idle thread runs any time
- * no other thread is ready to run. This thread loops forever with
- * interrupts enabled.
- */
-
-/*
- * COPYRIGHT (c) 1989-2002.
- * 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/system.h>
-#include <rtems/score/thread.h>
-
-void *_CPU_Thread_Idle_body( uintptr_t ignored )
-{
-#if defined(mcf5272)
- for( ; ; ) {
- __asm__ volatile( "nop" );
- __asm__ volatile( "nop" );
- }
-#else
- for( ; ; ) {
- /* supervisor mode, all interrupts on */
- __asm__ volatile( "stop #0x3000":::"cc" );
- }
-#endif
-}
diff --git a/c/src/lib/libcpu/m68k/shared/misc/memProbe.c b/c/src/lib/libcpu/m68k/shared/misc/memProbe.c
deleted file mode 100644
index d352f76b6e..0000000000
--- a/c/src/lib/libcpu/m68k/shared/misc/memProbe.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Address Probing for M68k/ColdFire
- */
-
-#include <bsp.h>
-#include <string.h>
-#include <rtems/m68k/sim.h>
-
-#if (M68K_COLDFIRE_ARCH == 1)
-# define EXCEPTION_FRAME_PC_OFFSET "4"
-#else
-# define EXCEPTION_FRAME_PC_OFFSET "2"
-#endif
-
-typedef int (*MemProber)(void *from, void *to);
-int memProbeByte(void *from, void *to);
-int memProbeShort(void *from, void *to);
-int memProbeLong(void *from, void *to);
-int memProbeCatcher(void);
-rtems_status_code bspExtMemProbe(void *addr, int write, int size, void *pval);
-
-__asm__(
- ".text\n"
- "memProbeByte: \n"
- " move.l %sp@(4),%a0\n"
- " move.b %a0@,%d0 \n"
- " move.l %sp@(8),%a0\n"
- " move.b %d0,%a0@ \n"
- " bra.b 1f \n"
- "memProbeShort: \n"
- " move.l %sp@(4),%a0\n"
- " move.w %a0@,%d0 \n"
- " move.l %sp@(8),%a0\n"
- " move.w %d0,%a0@ \n"
- " bra.b 1f \n"
- "memProbeLong: \n"
- " move.l %sp@(4),%a0\n"
- " move.l %a0@,%d0 \n"
- " move.l %sp@(8),%a0\n"
- " move.l %d0,%a0@ \n"
- "1: nop \n"
- " moveq.l #1,%d0 \n"
- " rts \n"
- "memProbeCatcher: \n"
- " move.l #1f,%d0 \n"
- " move.l %d0,%sp@(" EXCEPTION_FRAME_PC_OFFSET ")\n"
- " rte \n"
- "1: clr.l %d0 \n"
- " rts \n"
-);
-
-rtems_status_code
-bspExtMemProbe(void *addr, int write, int size, void *pval)
-{
- rtems_status_code rval=RTEMS_SUCCESSFUL;
- rtems_interrupt_level level;
- unsigned long buf;
- MemProber probe;
- void *saveVector;
- void **exceptionPointer;
- void *vbr;
-
- /*
- * Sanity check
- */
- switch (size) {
- case sizeof(char): probe=memProbeByte; break;
- case sizeof(short): probe=memProbeShort; break;
- case sizeof(long): probe=memProbeLong; break;
- default: return RTEMS_INVALID_SIZE;
- }
-
- /*
- * use a buffer to make sure we don't end up probing 'pval'.
- */
- if (write && pval)
- memcpy(&buf, pval, size);
-
- /*
- * Get location of access fault exception
- */
- m68k_get_vbr(vbr);
- exceptionPointer = (void **)((char *)vbr + (2 * 4));
-
- /*
- * Probe!
- */
- rtems_interrupt_disable(level);
- saveVector = *exceptionPointer;
- *exceptionPointer = memProbeCatcher;
- if (write) {
- if (probe(&buf, addr) == 0)
- rval = RTEMS_INVALID_ADDRESS;
- }
- else {
- if (probe(addr, &buf) == 0)
- rval = RTEMS_INVALID_ADDRESS;
- }
- *exceptionPointer = saveVector;
- rtems_interrupt_enable(level);
-
- if (!write && pval && (rval == RTEMS_SUCCESSFUL))
- memcpy(pval, &buf, size);
- return rval;
-}