This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH] Blackfin hardware boards support (1/7)
- From: Jie Zhang <jie dot zhang at analog dot com>
- To: newlib at sourceware dot org
- Date: Thu, 07 Aug 2008 11:33:53 +0800
- Subject: [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*)