Index: c/src/lib/libcpu/ChangeLog
===================================================================
--- c/src/lib/libcpu/ChangeLog	(revision 6e97f0bf0a0d3fb69deecb7718c38b4df8cb39ad)
+++ c/src/lib/libcpu/ChangeLog	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -1,2 +1,8 @@
+2006-08-09	Kolja Waschk <waschk@telos.de>
+
+	* nios2/Makefile.am, nios2/configure.ac, nios2/preinstall.am,
+	nios2/shared/cache/cache.c, nios2/shared/cache/cache_.h,
+	nios2/shared/misc/memcpy.c: New files.
+
 2004-09-29	Joel Sherrill <joel@OARcorp.com>
 
Index: c/src/lib/libcpu/nios2/Makefile.am
===================================================================
--- c/src/lib/libcpu/nios2/Makefile.am	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/Makefile.am	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,34 @@
+##
+## $Id$
+##
+
+ACLOCAL_AMFLAGS = -I ../../../aclocal
+
+include $(top_srcdir)/../../../automake/compile.am
+
+CLEANFILES =
+DISTCLEANFILES =
+noinst_PROGRAMS =
+
+if shared
+include_libcpudir = $(includedir)/libcpu
+
+## shared/cache
+include_libcpu_HEADERS = ../shared/include/cache.h
+noinst_PROGRAMS += shared/cache.rel
+shared_cache_rel_SOURCES = shared/cache/cache.c shared/cache/cache_.h \
+    ../shared/src/cache_aligned_malloc.c \
+    ../shared/src/cache_manager.c
+shared_cache_rel_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/shared/cache
+shared_cache_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+
+## shared/misc
+noinst_PROGRAMS += shared/misc.rel
+shared_misc_rel_SOURCES = shared/misc/memcpy.c
+shared_misc_rel_CPPFLAGS = $(AM_CPPFLAGS) $(NIOS2_CPPFLAGS)
+shared_misc_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+endif
+
+include $(srcdir)/preinstall.am
+
+include $(top_srcdir)/../../../automake/local.am
Index: c/src/lib/libcpu/nios2/configure.ac
===================================================================
--- c/src/lib/libcpu/nios2/configure.ac	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/configure.ac	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,33 @@
+## Process this file with autoconf to produce a configure script.
+## 
+## $Id$
+
+AC_PREREQ(2.59)
+AC_INIT([rtems-c-src-lib-libcpu-nios2],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
+RTEMS_TOP([../../../../..],[../../..])
+
+RTEMS_CANONICAL_TARGET_CPU
+
+AM_INIT_AUTOMAKE([no-define foreign subdir-objects 1.9])
+AM_MAINTAINER_MODE
+
+RTEMS_ENV_RTEMSBSP
+
+RTEMS_PROJECT_ROOT
+
+RTEMS_PROG_CC_FOR_TARGET
+AM_PROG_CC_C_O
+RTEMS_CANONICALIZE_TOOLS
+RTEMS_PROG_CCAS
+
+# At this time all models should use the shared directory so do this
+AM_CONDITIONAL(shared, true)
+
+AC_PATH_PROG([AMPOLISH3],[ampolish3],[])
+AM_CONDITIONAL([AMPOLISH3],[test x"$USE_MAINTAINER_MODE" = x"yes" \
+  && test -n "$AMPOLISH3"])
+
+# Explicitly list all Makefiles here
+AC_CONFIG_FILES([Makefile
+])
+AC_OUTPUT
Index: c/src/lib/libcpu/nios2/preinstall.am
===================================================================
--- c/src/lib/libcpu/nios2/preinstall.am	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/preinstall.am	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,26 @@
+## Automatically generated by ampolish3 - Do not edit
+
+if AMPOLISH3
+$(srcdir)/preinstall.am: Makefile.am
+	$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
+endif
+
+PREINSTALL_DIRS =
+DISTCLEANFILES += $(PREINSTALL_DIRS)
+
+PREINSTALL_FILES =
+CLEANFILES += $(PREINSTALL_FILES)
+
+if shared
+$(PROJECT_INCLUDE)/libcpu/$(dirstamp):
+	@$(mkdir_p) $(PROJECT_INCLUDE)/libcpu
+	@: > $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
+
+$(PROJECT_INCLUDE)/libcpu/cache.h: ../shared/include/cache.h $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libcpu/cache.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/libcpu/cache.h
+
+endif
+
+
Index: c/src/lib/libcpu/nios2/shared/cache/cache.c
===================================================================
--- c/src/lib/libcpu/nios2/shared/cache/cache.c	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/shared/cache/cache.c	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,67 @@
+/*
+ *  Cache Management Support Routines for the MC68040
+ *
+ *  $Id$
+ */
+
+#include <rtems.h>
+#include "cache_.h"
+
+/*
+ * CACHE MANAGER: The following functions are CPU-specific.
+ * They provide the basic implementation for the rtems_* cache
+ * management routines. If a given function has no meaning for the CPU,
+ * it does nothing by default.
+ */
+
+void _CPU_cache_freeze_data ( void ) {}
+void _CPU_cache_unfreeze_data ( void ) {}
+void _CPU_cache_freeze_instruction ( void ) {}
+void _CPU_cache_unfreeze_instruction ( void ) {}
+
+void _CPU_cache_flush_1_data_line (
+  const void * d_addr )
+{
+  void * p_address = (void *) _CPU_virtual_to_physical( d_addr );
+}
+
+void _CPU_cache_invalidate_1_data_line (
+  const void * d_addr )
+{
+  void * p_address = (void *) _CPU_virtual_to_physical( d_addr );
+}
+
+void _CPU_cache_flush_entire_data ( void )
+{
+}
+
+void _CPU_cache_invalidate_entire_data ( void )
+{
+}
+
+void _CPU_cache_enable_data ( void )
+{
+}
+
+void _CPU_cache_disable_data ( void )
+{
+}
+
+void _CPU_cache_invalidate_1_instruction_line (
+  const void * i_addr )
+{
+  void * p_address = (void *)  _CPU_virtual_to_physical( i_addr );
+}
+
+void _CPU_cache_invalidate_entire_instruction ( void )
+{
+}
+
+void _CPU_cache_enable_instruction ( void )
+{
+}
+
+void _CPU_cache_disable_instruction ( void )
+{
+}
+/* end of file */
Index: c/src/lib/libcpu/nios2/shared/cache/cache_.h
===================================================================
--- c/src/lib/libcpu/nios2/shared/cache/cache_.h	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/shared/cache/cache_.h	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,34 @@
+/*
+ *  M68K Cache Manager Support
+ */
+
+#ifndef __M68K_CACHE_h
+#define __M68K_CACHE_h
+
+#if (defined(__mc68020__) && !defined(__mcpu32__))
+# define M68K_INSTRUCTION_CACHE_ALIGNMENT 16
+#elif defined(__mc68030__)
+# define M68K_INSTRUCTION_CACHE_ALIGNMENT 16
+# define M68K_DATA_CACHE_ALIGNMENT 16
+#elif ( defined(__mc68040__) || defined (__mc68060__) )
+# define M68K_INSTRUCTION_CACHE_ALIGNMENT 16
+# define M68K_DATA_CACHE_ALIGNMENT 16
+#elif ( defined(__mcf5200__) )
+# define M68K_INSTRUCTION_CACHE_ALIGNMENT 16
+# if ( defined(__mcf528x__) )
+#  define M68K_DATA_CACHE_ALIGNMENT 16
+# endif
+#endif
+
+#if defined(M68K_DATA_CACHE_ALIGNMENT)
+#define CPU_DATA_CACHE_ALIGNMENT M68K_DATA_CACHE_ALIGNMENT
+#endif
+
+#if defined(M68K_INSTRUCTION_CACHE_ALIGNMENT)
+#define CPU_INSTRUCTION_CACHE_ALIGNMENT M68K_INSTRUCTION_CACHE_ALIGNMENT
+#endif
+
+#include <libcpu/cache.h>
+
+#endif
+/* end of include file */
Index: c/src/lib/libcpu/nios2/shared/misc/memcpy.c
===================================================================
--- c/src/lib/libcpu/nios2/shared/misc/memcpy.c	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
+++ c/src/lib/libcpu/nios2/shared/misc/memcpy.c	(revision 1e2c61136a53e96e97e5d5a70b2ef114940f34f0)
@@ -0,0 +1,21 @@
+/*
+ *  C library memcpy routine
+ *
+ *  This routine shall get code to optimize performance on NIOS II
+ *
+ *  The routine is placed in this source directory to ensure that it
+ *  is picked up by all applications.
+ */
+
+#include <string.h>
+
+void *
+memcpy(void *s1, const void *s2, size_t n)
+{
+	char *p1 = s1;
+	const char *p2 = s2;
+    size_t left = n;
+
+    while(left > 0) *(p1++) = *(p2++);
+	return s1;
+}
