This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Newlib port for the Visium


Hi,

on behalf of Controls and Data Services, AdaCore would like to contribute a
port of Newlib to the Visium.  This is a 32-bit RISC architecture with an 
Extended Arithmetic Module implementing some 64-bit operations and an FPU
designed for embedded systems.  The binutils and compilers port have already 
been contributed and the ultimate goal is to contribute a port of the entire 
toolchain with simulator and debugger.

This is a very basic port but it contains a libsim.a that implements support 
for I/O in the simulator.  It is under the standard BSD license, modulo a 
couple of files (libgloss/visium/io.h and libgloss/visium/io-gdb.c) that are 
copied from the m68k port:

? libgloss/visium/Makefile.in
? libgloss/visium/_exit.c
? libgloss/visium/aclocal.m4
? libgloss/visium/configure
? libgloss/visium/configure.in
? libgloss/visium/crt0.S
? libgloss/visium/gettod.c
? libgloss/visium/io-gdb.c
? libgloss/visium/io-stubs.c
? libgloss/visium/io.h
? libgloss/visium/sbrk.c
? libgloss/visium/serial-inbyte.c
? libgloss/visium/serial-outbyte.c
? libgloss/visium/syscall.h
? libgloss/visium/syscalls.c
? newlib/libc/machine/visium/Makefile.am
? newlib/libc/machine/visium/Makefile.in
? newlib/libc/machine/visium/aclocal.m4
? newlib/libc/machine/visium/configure
? newlib/libc/machine/visium/configure.in
? newlib/libc/machine/visium/memcpy.c
? newlib/libc/machine/visium/memcpy.h
? newlib/libc/machine/visium/memmove.c
? newlib/libc/machine/visium/memset.c
? newlib/libc/machine/visium/memset.h
? newlib/libc/machine/visium/setjmp.S

I have write access to the CVS repository.


2015-01-19  Eric Botcazou  <ebotcazou@adacore.com>

	* COPYING.LIBGLOSS: Add Controls and Data Services copyright.
	* COPYING.NEWLIB: Likewise.

libgloss/
2015-01-19  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.in: Add Visium support.
	* configure: Regenerate.
	* libgloss/visium/: New directory.

newlib/
2015-01-19  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.host: Add Visium support.
	* libc/machine/configure.in: Likewise.
	* libc/machine/configure: Regenerate.
	* libc/machine/visium/: New directory.
	* libc/include/machine/setjmp.h (_JBLEN): Define for Visium.
	* libc/include/machine/ieeefp.h (__IEEE_BIG_ENDIAN): Likewise.
	* libc/include/machine/time.h (_CLOCKS_PER_SEC_): Likewise.


-- 
Eric Botcazou
Index: COPYING.LIBGLOSS
===================================================================
RCS file: /cvs/src/src/COPYING.LIBGLOSS,v
retrieving revision 1.19
diff -u -p -r1.19 COPYING.LIBGLOSS
--- COPYING.LIBGLOSS	7 Jan 2013 21:39:26 -0000	1.19
+++ COPYING.LIBGLOSS	19 Jan 2015 20:22:13 -0000
@@ -352,3 +352,31 @@ CAUSED AND ON ANY THEORY OF LIABILITY, W
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+
+(18) - Rolls-Royce Controls and Data Services Limited (visium-* targets)
+
+Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+  * Neither the name of Rolls-Royce Controls and Data Services Limited nor
+    the names of its contributors may be used to endorse or promote products
+    derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: COPYING.NEWLIB
===================================================================
RCS file: /cvs/src/src/COPYING.NEWLIB,v
retrieving revision 1.34
diff -u -p -r1.34 COPYING.NEWLIB
--- COPYING.NEWLIB	4 Apr 2014 21:52:07 -0000	1.34
+++ COPYING.NEWLIB	19 Jan 2015 20:22:13 -0000
@@ -951,3 +951,30 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 
+(42) - Rolls-Royce Controls and Data Services Limited (visium-* targets)
+
+Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+  * Neither the name of Rolls-Royce Controls and Data Services Limited nor
+    the names of its contributors may be used to endorse or promote products
+    derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: libgloss/configure.in
===================================================================
RCS file: /cvs/src/src/libgloss/configure.in,v
retrieving revision 1.42
diff -u -p -r1.42 configure.in
--- libgloss/configure.in	15 Dec 2014 20:09:27 -0000	1.42
+++ libgloss/configure.in	19 Jan 2015 20:22:14 -0000
@@ -126,6 +126,10 @@ case "${target}" in
   v850*-*-*)
         AC_CONFIG_SUBDIRS([v850])
         ;;
+  visium-*-*)
+	AC_CONFIG_SUBDIRS([visium])
+	config_testsuite=false
+	;;
   xc16x-*-*)
 	AC_CONFIG_SUBDIRS([xc16x])
 	;;
Index: newlib/configure.host
===================================================================
RCS file: /cvs/src/src/newlib/configure.host,v
retrieving revision 1.140
diff -u -p -r1.140 configure.host
--- newlib/configure.host	15 Dec 2014 13:27:37 -0000	1.140
+++ newlib/configure.host	19 Jan 2015 20:22:14 -0000
@@ -286,6 +286,9 @@ case "${host_cpu}" in
 	machine_dir=v850
 	newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED "
 	;;
+  visium)
+	machine_dir=visium
+	;;
   w65*)
 	machine_dir=w65
 	;;
@@ -542,6 +545,9 @@ case "${host}" in
           have_crt0="no"
         fi
 	;;
+  visium-*-*)
+	sys_dir=
+	;;
   w65-*-*)
 	sys_dir=w65
 	;;
@@ -797,6 +803,10 @@ case "${host}" in
   v850*-*-*)
 	syscall_dir=syscalls
 	;;
+  visium-*-*)
+	newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES"
+	syscall_dir=
+	;;
   w65-*-*)
 	syscall_dir=syscalls	
 	newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY"
Index: newlib/libc/include/machine/ieeefp.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/machine/ieeefp.h,v
retrieving revision 1.58
diff -u -p -r1.58 ieeefp.h
--- newlib/libc/include/machine/ieeefp.h	17 Jul 2014 18:43:04 -0000	1.58
+++ newlib/libc/include/machine/ieeefp.h	19 Jan 2015 20:22:14 -0000
@@ -415,6 +415,10 @@
 # endif
 #endif
 
+#ifdef __VISIUM__
+#define __IEEE_BIG_ENDIAN
+#endif
+
 #ifndef __IEEE_BIG_ENDIAN
 #ifndef __IEEE_LITTLE_ENDIAN
 #error Endianess not declared!!
Index: newlib/libc/include/machine/setjmp.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/machine/setjmp.h,v
retrieving revision 1.57
diff -u -p -r1.57 setjmp.h
--- newlib/libc/include/machine/setjmp.h	15 Dec 2014 13:32:16 -0000	1.57
+++ newlib/libc/include/machine/setjmp.h	19 Jan 2015 20:22:14 -0000
@@ -338,6 +338,11 @@ _BEGIN_STD_C
 #define _JBLEN 0x44
 #endif
 
+#ifdef __VISIUM__
+/* All call-saved GP registers: r11-r19,r21,r22,r23.  */
+#define _JBLEN 12
+#endif
+
 #ifdef _JBLEN
 #ifdef _JBTYPE
 typedef	_JBTYPE jmp_buf[_JBLEN];
Index: newlib/libc/include/machine/time.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/machine/time.h,v
retrieving revision 1.4
diff -u -p -r1.4 time.h
--- newlib/libc/include/machine/time.h	26 Sep 2012 20:06:47 -0000	1.4
+++ newlib/libc/include/machine/time.h	19 Jan 2015 20:22:14 -0000
@@ -3,11 +3,11 @@
 
 #if defined(__rtems__)
 #define _CLOCKS_PER_SEC_  sysconf(_SC_CLK_TCK)
-#else  /* !__rtems__ */
-#if defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
+#elif defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
 #define _CLOCKS_PER_SEC_ 100
+#elif defined (__VISIUM__)
+#define _CLOCKS_PER_SEC_ 1000000
 #endif
-#endif /* !__rtems__ */
 
 #ifdef __SPU__
 #include <sys/types.h>
@@ -15,5 +15,3 @@ int nanosleep (const struct timespec *, 
 #endif
 
 #endif	/* _MACHTIME_H_ */
-
-
Index: newlib/libc/machine/configure.in
===================================================================
RCS file: /cvs/src/src/newlib/libc/machine/configure.in,v
retrieving revision 1.25
diff -u -p -r1.25 configure.in
--- newlib/libc/machine/configure.in	17 Jul 2014 18:43:04 -0000	1.25
+++ newlib/libc/machine/configure.in	19 Jan 2015 20:22:15 -0000
@@ -69,6 +69,7 @@ if test -n "${machine_dir}"; then
 	tic6x) AC_CONFIG_SUBDIRS(tic6x) ;;
 	tic80) AC_CONFIG_SUBDIRS(tic80) ;;
 	v850) AC_CONFIG_SUBDIRS(v850) ;;
+	visium) AC_CONFIG_SUBDIRS(visium) ;;
 	w65) AC_CONFIG_SUBDIRS(w65) ;;
 	x86_64) AC_CONFIG_SUBDIRS(x86_64) ;;
 	xc16x) AC_CONFIG_SUBDIRS(xc16x) ;;

Attachment: newlib_files.tar.gz
Description: application/compressed-tar


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]