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]

[PATCH] Blackfin hardware boards support (1/7)


Hi,

This patch adds hardware board supports in libgloss for Blackfin
processors. Most parts of it are newly added header files, which define
MMRs for each type of Blackfin processor. This patch also provides
default linker scripts. The patch is split into 7 parts and compressed
since newlib mailing list won't accept email larger than 100000 bytes.
Please review and commit. Thanks.


Jie


2008-08-07  Jie Zhang  <jie.zhang@analog.com>

	* bfin/Makefile.in: (top_srcdir): Define.
	(mkinstalldirs): Define.
	(BOARD_SCRIPTS): Define.
	(BOARD_LDFLAGS): Define.
	(BOARD_BSP): Define.
	(BOARD_CRT0S): Define.
	(BOARD_OBJS): Define.
	(BOARD_TEST): Define.
	(BOARD_INSTALL): Define.
	(INCLUDES): Add -I$(srcdir)/include.
	(all): Add ${BOARD_CRT0S} and ${BOARD_BSP}.
	(.c.S): Remove target.
	(crt0.o): New target.
	(basiccrt.o): Likewise.
	(basiccrtb.o): Likewise.
	(basiccrts.o): Likewise.
	(clean mostlyclean): Remove ${BOARD_BSP}.
	(install): Depend on ${BOARD_INSTALL}.
	(install-sim): Reformat.
	(install-board): New target.
	* bfin/basiccrt.S: New file.
	* bfin/bf522.ld: New file.
	* bfin/bf523.ld: New file.
	* bfin/bf524.ld: New file.
	* bfin/bf525.ld: New file.
	* bfin/bf526.ld: New file.
	* bfin/bf527.ld: New file.
	* bfin/bf531.ld: New file.
	* bfin/bf532.ld: New file.
	* bfin/bf533.ld: New file.
	* bfin/bf534.ld: New file.
	* bfin/bf536.ld: New file.
	* bfin/bf537.ld: New file.
	* bfin/bf538.ld: New file.
	* bfin/bf539.ld: New file.
	* bfin/bf542.ld: New file.
	* bfin/bf544.ld: New file.
	* bfin/bf547.ld: New file.
	* bfin/bf548.ld: New file.
	* bfin/bf549.ld: New file.
	* bfin/bf561.ld: New file.
	* bfin/bf561a.ld: New file.
	* bfin/bf561b.ld: New file.
	* bfin/bf561m.ld: New file.
	* bfin/bfin-common-mc.ld: New file.
	* bfin/bfin-common-sc.ld: New file.
	* bfin/include/blackfin.h: New file.
	* bfin/include/cdefBF522.h: New file.
	* bfin/include/cdefBF525.h: New file.
	* bfin/include/cdefBF527.h: New file.
	* bfin/include/cdefBF52x_base.h: New file.
	* bfin/include/cdefBF531.h: New file.
	* bfin/include/cdefBF532.h: New file.
	* bfin/include/cdefBF533.h: New file.
	* bfin/include/cdefBF534.h: New file.
	* bfin/include/cdefBF535.h: New file.
	* bfin/include/cdefBF536.h: New file.
	* bfin/include/cdefBF537.h: New file.
	* bfin/include/cdefBF538.h: New file.
	* bfin/include/cdefBF539.h: New file.
	* bfin/include/cdefBF53x.h: New file.
	* bfin/include/cdefBF541.h: New file.
	* bfin/include/cdefBF542.h: New file.
	* bfin/include/cdefBF544.h: New file.
	* bfin/include/cdefBF547.h: New file.
	* bfin/include/cdefBF548.h: New file.
	* bfin/include/cdefBF549.h: New file.
	* bfin/include/cdefBF54x_base.h: New file.
	* bfin/include/cdefBF561.h: New file.
	* bfin/include/cdef_LPBlackfin.h: New file.
	* bfin/include/cdefblackfin.h: New file.
	* bfin/include/cplb.h: New file.
	* bfin/include/cplbtab.h: New file.
	* bfin/include/defBF522.h: New file.
	* bfin/include/defBF525.h: New file.
	* bfin/include/defBF527.h: New file.
	* bfin/include/defBF52x_base.h: New file.
	* bfin/include/defBF531.h: New file.
	* bfin/include/defBF532.h: New file.
	* bfin/include/defBF533.h: New file.
	* bfin/include/defBF534.h: New file.
	* bfin/include/defBF535.h: New file.
	* bfin/include/defBF536.h: New file.
	* bfin/include/defBF537.h: New file.
	* bfin/include/defBF538.h: New file.
	* bfin/include/defBF539.h: New file.
	* bfin/include/defBF541.h: New file.
	* bfin/include/defBF542.h: New file.
	* bfin/include/defBF544.h: New file.
	* bfin/include/defBF547.h: New file.
	* bfin/include/defBF548.h: New file.
	* bfin/include/defBF549.h: New file.
	* bfin/include/defBF54x_base.h: New file.
	* bfin/include/defBF561.h: New file.
	* bfin/include/def_LPBlackfin.h: New file.
	* bfin/include/defblackfin.h: New file.
	* bfin/include/sys/_adi_platform.h: New file.
	* bfin/include/sys/anomaly_macros_rtl.h: New file.
	* bfin/include/sys/excause.h: New file.
	* bfin/include/sys/exception.h: New file.
	* bfin/include/sys/mc_typedef.h: New file.
	* bfin/include/sys/platform.h: New file.
	* bfin/include/sys/pll.h: New file.
	* bfin/include/sysreg.h: New file.
	* libnosys/configure.in (MISSING_SYSCALL_NAMES): Don't define
	for bfin.
	* libnosys/configure: Regenerate.


Index: libgloss/bfin/Makefile.in
===================================================================
--- libgloss/bfin/Makefile.in.orig	2007-09-30 10:13:21.000000000 +0800
+++ libgloss/bfin/Makefile.in	2008-07-25 14:53:26.000000000 +0800
@@ -7,6 +7,7 @@
 objdir = .
 srcroot = $(srcdir)/../..
 objroot = $(objdir)/../..
+top_srcdir = @top_srcdir@
 
 prefix = @prefix@
 exec_prefix = @exec_prefix@
@@ -29,6 +30,8 @@
 
 SHELL =	/bin/sh
 
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+
 CC = @CC@
 
 AS = @AS@
@@ -56,14 +59,33 @@
 SIM_TEST	= sim-test
 SIM_INSTALL	= install-sim
 
+# Here is all of the development board stuff
+# BF531, BF532, BF533, BF537
+BOARD_SCRIPTS	= bfin-common-sc.ld  bfin-common-mc.ld \
+	bf522.ld bf523.ld bf524.ld bf525.ld bf526.ld bf527.ld \
+	bf531.ld bf532.ld bf533.ld \
+	bf534.ld bf536.ld bf537.ld \
+	bf538.ld bf539.ld \
+	bf542.ld bf544.ld bf547.ld bf548.ld bf549.ld \
+	bf561.ld bf561a.ld bf561b.ld bf561m.ld
+BOARD_LDFLAGS	=
+BOARD_BSP	= # We actually use libnosys.a
+BOARD_CRT0S	= basiccrt.o basiccrts.o
+BOARD_CRT0S	+= $(shell if [[ x$$($(CC) $(CFLAGS) -print-multi-directory) \
+			= xbf561* ]]; then echo basiccrtb.o; fi)
+BOARD_OBJS	=
+BOARD_TEST	=
+BOARD_INSTALL	= install-board
+
 # Host specific makefile fragment comes in here.
 @host_makefile_frag@
 
+INCLUDES += -I$(srcdir)/include
 #
 # build a test program for each target board. Just trying to get
 # it to link is a good test, so we ignore all the errors for now.
 #
-all: ${SIM_CRT0} ${SIM_BSP}
+all: ${SIM_CRT0} ${SIM_BSP} ${BOARD_CRT0S} ${BOARD_BSP}
 
 #
 # here's where we build the board support packages for each target
@@ -75,20 +97,46 @@
 #
 #
 #
-.c.S:
-	${CC} ${CFLAGS_FOR_TARGET} -c $<
+crt0.o: crt0.S
+basiccrt.o: basiccrt.S
+
+basiccrtb.o: basiccrt.S
+	$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
+
+basiccrts.o: basiccrt.S
+	$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
 
 clean mostlyclean:
-	rm -f a.out core *.i *.o $(SIM_BSP)
+	rm -f a.out core *.i *.o ${SIM_BSP} ${BOARD_BSP}
 
 distclean maintainer-clean realclean: clean
 	rm -f Makefile config.status *~
 
 .PHONY: install info install-info clean-info
-install: ${SIM_INSTALL}
+install: ${SIM_INSTALL} ${BOARD_INSTALL}
 
 install-sim:
-	set -e; for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
+	for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do \
+	 ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \
+	done
+
+install-board:
+	for x in ${BOARD_CRT0S} ${BOARD_BSP}; do \
+	 ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; \
+	done
+	-if [ -z "${MULTISUBDIR}" ]; then \
+	  for x in ${BOARD_SCRIPTS}; do \
+	   ${INSTALL_DATA} ${srcdir}/$$x $(DESTDIR)${tooldir}/lib/$$x; \
+	  done; \
+	  ${mkinstalldirs} ${DESTDIR}${tooldir}/include; \
+	  for i in ${srcdir}/include/*.h; do \
+	   ${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/`basename $$i`; \
+	  done; \
+	  ${mkinstalldirs} ${DESTDIR}${tooldir}/include/sys; \
+	  for i in ${srcdir}/include/sys/*.h; do \
+	   ${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/sys/`basename $$i`; \
+	  done; \
+	else true; fi
 
 doc:
 info:
Index: libgloss/libnosys/configure.in
===================================================================
--- libgloss/libnosys/configure.in.orig	2007-09-30 10:13:21.000000000 +0800
+++ libgloss/libnosys/configure.in	2008-07-25 14:53:26.000000000 +0800
@@ -51,6 +51,8 @@
 	;;
   strongarm-*-*)
 	;;
+  bfin-*-*)
+	;;
   cris-*-* | crisv32-*-*)
 	;;
   d10v*)


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