OSDN Git Service

Patches already sent.
authorMasaki Muranaka <monaka at monami-software.com>
Wed, 15 Jul 2009 00:56:20 +0000 (09:56 +0900)
committerMasaki Muranaka <monaka at monami-software.com>
Wed, 15 Jul 2009 00:56:37 +0000 (00:56 +0000)
jtag/configure.ac
jtag/data/analog/sharc21369/sharc21369
jtag/src/bus/Makefile.am
jtag/src/bus/Makefile.in [new file with mode: 0644]
jtag/src/bus/buses.c
jtag/src/bus/buses.h
jtag/src/bus/sharc21369_ezkit.c [new file with mode: 0644]

index 48e3670..f83740f 100644 (file)
@@ -413,7 +413,7 @@ AC_DEFUN([CHECK_DRIVER], [
 AC_DEFUN([DEF_ENABLE_BUSDRIVERS], [\
 au1500 avr32 bcm1250 bf526_ezkit bf527_ezkit bf533_stamp bf533_ezkit bf537_stamp bf537_ezkit bf538f_ezkit bf548_ezkit bf561_ezkit bscoach ejtag ejtag_dma\
 fjmem ixp425 jopcyc h7202 lh7a400  mpc5200 mpc824x ppc405ep ppc440gx_ebc8 prototype pxa2x0 pxa27x \
-s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L slsup3 tx4925 zefant_xs3])
+s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L sharc_21369_ezkit slsup3 tx4925 zefant_xs3])
 AC_ARG_ENABLE(bus,
 [AS_HELP_STRING([--enable-bus], [Enable default set or specific bus drivers:])]
 [AS_HELP_STRING([],             ['default' enables:])]
@@ -462,6 +462,7 @@ CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7727],        [ENABLE_BUS_
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7750r],       [ENABLE_BUS_SH7750R])
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7751r],       [ENABLE_BUS_SH7751R])
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sharc_21065L],  [ENABLE_BUS_SHARC_21065L])
+CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sharc_21369_ezkit],  [ENABLE_BUS_SHARC_21369_EZKIT])
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [slsup3],        [ENABLE_BUS_SLSUP3])
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [tx4925],        [ENABLE_BUS_TX4925])
 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [zefant_xs3],    [ENABLE_BUS_ZEFANT_XS3])
index ff08b77..a1797d4 100644 (file)
@@ -22,8 +22,7 @@
 # Written by Masaki Muranaka <monaka at monami-software.com>, 2009
 #
 # Documentation:
-#       [1] Analog Devices Inc.,"ADSP-21065L SHARC Technical Reference", September 1998
-#       [2] Analog Devices Inc.,"BSDL for ADSP_21369 sBGA_PACKAGE: 256 sbga Package", BSDL rev 0.0
+#       [1] Analog Devices Inc.,"BSDL for ADSP_21369 sBGA_PACKAGE: 256 sbga Package", BSDL rev 0.0
 #           http://www.analog.com/UploadedFiles/BSDL_Files/435954194035486111591903bsdl_21065l_bga.txt
 #
 #
index 7c3c888..1d766e8 100644 (file)
@@ -166,6 +166,10 @@ if ENABLE_BUS_SHARC_21065L
 libbus_a_SOURCES += sharc21065l.c
 endif
 
+if ENABLE_BUS_SHARC_21369_EZKIT
+libbus_a_SOURCES += sharc21369_ezkit.c
+endif
+
 if ENABLE_BUS_SLSUP3
 libbus_a_SOURCES += slsup3.c
 endif
diff --git a/jtag/src/bus/Makefile.in b/jtag/src/bus/Makefile.in
new file mode 100644 (file)
index 0000000..7dd6277
--- /dev/null
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# $Id: Makefile.am 1417 2009-01-03 20:09:31Z arniml $
+#
+# Copyright (C) 2003 ETC s.r.o.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+# Written by Marcel Telka <marcel@telka.sk>, 2003.
+#
+
+#
+# $Id: Makefile.rules 602 2004-08-11 05:33:01Z telka $
+#
+# Copyright (C) 2003 ETC s.r.o.
+# Copyright (C) 2004 Marcel Telka
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+# Written by Marcel Telka <marcel@telka.sk>, 2003, 2004.
+#
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/Makefile.rules
+@ENABLE_BUS_AU1500_TRUE@am__append_1 = au1500.c
+@ENABLE_BUS_AVR32_TRUE@am__append_2 = avr32.c
+@ENABLE_BUS_BCM1250_TRUE@am__append_3 = bcm1250.c
+@ENABLE_BUS_BF526_EZKIT_TRUE@am__append_4 = bf537_stamp.c
+@ENABLE_BUS_BF527_EZKIT_TRUE@am__append_5 = bf537_stamp.c
+@ENABLE_BUS_BF533_STAMP_TRUE@am__append_6 = bf533_stamp.c
+@ENABLE_BUS_BF533_EZKIT_TRUE@am__append_7 = bf533_ezkit.c
+@ENABLE_BUS_BF537_STAMP_TRUE@am__append_8 = bf537_stamp.c
+@ENABLE_BUS_BF537_EZKIT_TRUE@am__append_9 = bf537_stamp.c
+@ENABLE_BUS_BF538F_EZKIT_TRUE@am__append_10 = bf537_stamp.c
+@ENABLE_BUS_BF548_EZKIT_TRUE@am__append_11 = bf548_ezkit.c
+@ENABLE_BUS_BF561_EZKIT_TRUE@am__append_12 = bf561_ezkit.c
+@ENABLE_BUS_BSCOACH_TRUE@am__append_13 = bscoach.c
+@ENABLE_BUS_EJTAG_TRUE@am__append_14 = ejtag.c
+@ENABLE_BUS_EJTAG_DMA_TRUE@am__append_15 = ejtag_dma.c
+@ENABLE_BUS_FJMEM_TRUE@am__append_16 = fjmem.c
+@ENABLE_BUS_H7202_TRUE@am__append_17 = h7202.c
+@ENABLE_BUS_IXP425_TRUE@am__append_18 = ixp425.c
+@ENABLE_BUS_JOPCYC_TRUE@am__append_19 = jopcyc.c
+@ENABLE_BUS_LH7A400_TRUE@am__append_20 = lh7a400.c
+@ENABLE_BUS_MPC5200_TRUE@am__append_21 = mpc5200.c
+@ENABLE_BUS_MPC824X_TRUE@am__append_22 = mpc824x.c
+@ENABLE_BUS_PPC405EP_TRUE@am__append_23 = ppc405ep.c
+@ENABLE_BUS_PPC440GX_EBC8_TRUE@am__append_24 = ppc440gx_ebc8.c
+@ENABLE_BUS_PROTOTYPE_TRUE@am__append_25 = prototype.c
+@ENABLE_BUS_PXA2X0_TRUE@am__append_26 = pxa2x0.c
+@ENABLE_BUS_PXA27X_TRUE@@ENABLE_BUS_PXA2X0_FALSE@am__append_27 = pxa2x0.c
+@ENABLE_BUS_S3C4510_TRUE@am__append_28 = s3c4510x.c
+@ENABLE_BUS_SA1110_TRUE@am__append_29 = sa1110.c
+@ENABLE_BUS_SH7727_TRUE@am__append_30 = sh7727.c
+@ENABLE_BUS_SH7750R_TRUE@am__append_31 = sh7750r.c
+@ENABLE_BUS_SH7751R_TRUE@am__append_32 = sh7751r.c
+@ENABLE_BUS_SHARC_21065L_TRUE@am__append_33 = sharc21065l.c
+@ENABLE_BUS_SHARC_21369_EZKIT_TRUE@am__append_34 = sharc21369_ezkit.c
+@ENABLE_BUS_SLSUP3_TRUE@am__append_35 = slsup3.c
+@ENABLE_BUS_TX4925_TRUE@am__append_36 = tx4925.c
+@ENABLE_BUS_ZEFANT_XS3_TRUE@am__append_37 = zefant-xs3.c
+subdir = src/bus
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/tools/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libbus_a_AR = $(AR) $(ARFLAGS)
+libbus_a_LIBADD =
+am__libbus_a_SOURCES_DIST = buses.c buses.h generic_bus.c \
+       generic_bus.h pxa2x0_mc.h readmem.c writemem.c au1500.c \
+       avr32.c bcm1250.c bf537_stamp.c bf533_stamp.c bf533_ezkit.c \
+       bf548_ezkit.c bf561_ezkit.c bscoach.c ejtag.c ejtag_dma.c \
+       fjmem.c h7202.c ixp425.c jopcyc.c lh7a400.c mpc5200.c \
+       mpc824x.c ppc405ep.c ppc440gx_ebc8.c prototype.c pxa2x0.c \
+       s3c4510x.c sa1110.c sh7727.c sh7750r.c sh7751r.c \
+       sharc21065l.c sharc21369_ezkit.c slsup3.c tx4925.c zefant-xs3.c
+@ENABLE_BUS_AU1500_TRUE@am__objects_1 = au1500.$(OBJEXT)
+@ENABLE_BUS_AVR32_TRUE@am__objects_2 = avr32.$(OBJEXT)
+@ENABLE_BUS_BCM1250_TRUE@am__objects_3 = bcm1250.$(OBJEXT)
+@ENABLE_BUS_BF526_EZKIT_TRUE@am__objects_4 = bf537_stamp.$(OBJEXT)
+@ENABLE_BUS_BF527_EZKIT_TRUE@am__objects_5 = bf537_stamp.$(OBJEXT)
+@ENABLE_BUS_BF533_STAMP_TRUE@am__objects_6 = bf533_stamp.$(OBJEXT)
+@ENABLE_BUS_BF533_EZKIT_TRUE@am__objects_7 = bf533_ezkit.$(OBJEXT)
+@ENABLE_BUS_BF537_STAMP_TRUE@am__objects_8 = bf537_stamp.$(OBJEXT)
+@ENABLE_BUS_BF537_EZKIT_TRUE@am__objects_9 = bf537_stamp.$(OBJEXT)
+@ENABLE_BUS_BF538F_EZKIT_TRUE@am__objects_10 = bf537_stamp.$(OBJEXT)
+@ENABLE_BUS_BF548_EZKIT_TRUE@am__objects_11 = bf548_ezkit.$(OBJEXT)
+@ENABLE_BUS_BF561_EZKIT_TRUE@am__objects_12 = bf561_ezkit.$(OBJEXT)
+@ENABLE_BUS_BSCOACH_TRUE@am__objects_13 = bscoach.$(OBJEXT)
+@ENABLE_BUS_EJTAG_TRUE@am__objects_14 = ejtag.$(OBJEXT)
+@ENABLE_BUS_EJTAG_DMA_TRUE@am__objects_15 = ejtag_dma.$(OBJEXT)
+@ENABLE_BUS_FJMEM_TRUE@am__objects_16 = fjmem.$(OBJEXT)
+@ENABLE_BUS_H7202_TRUE@am__objects_17 = h7202.$(OBJEXT)
+@ENABLE_BUS_IXP425_TRUE@am__objects_18 = ixp425.$(OBJEXT)
+@ENABLE_BUS_JOPCYC_TRUE@am__objects_19 = jopcyc.$(OBJEXT)
+@ENABLE_BUS_LH7A400_TRUE@am__objects_20 = lh7a400.$(OBJEXT)
+@ENABLE_BUS_MPC5200_TRUE@am__objects_21 = mpc5200.$(OBJEXT)
+@ENABLE_BUS_MPC824X_TRUE@am__objects_22 = mpc824x.$(OBJEXT)
+@ENABLE_BUS_PPC405EP_TRUE@am__objects_23 = ppc405ep.$(OBJEXT)
+@ENABLE_BUS_PPC440GX_EBC8_TRUE@am__objects_24 =  \
+@ENABLE_BUS_PPC440GX_EBC8_TRUE@        ppc440gx_ebc8.$(OBJEXT)
+@ENABLE_BUS_PROTOTYPE_TRUE@am__objects_25 = prototype.$(OBJEXT)
+@ENABLE_BUS_PXA2X0_TRUE@am__objects_26 = pxa2x0.$(OBJEXT)
+@ENABLE_BUS_PXA27X_TRUE@@ENABLE_BUS_PXA2X0_FALSE@am__objects_27 = pxa2x0.$(OBJEXT)
+@ENABLE_BUS_S3C4510_TRUE@am__objects_28 = s3c4510x.$(OBJEXT)
+@ENABLE_BUS_SA1110_TRUE@am__objects_29 = sa1110.$(OBJEXT)
+@ENABLE_BUS_SH7727_TRUE@am__objects_30 = sh7727.$(OBJEXT)
+@ENABLE_BUS_SH7750R_TRUE@am__objects_31 = sh7750r.$(OBJEXT)
+@ENABLE_BUS_SH7751R_TRUE@am__objects_32 = sh7751r.$(OBJEXT)
+@ENABLE_BUS_SHARC_21065L_TRUE@am__objects_33 = sharc21065l.$(OBJEXT)
+@ENABLE_BUS_SHARC_21369_EZKIT_TRUE@am__objects_34 = sharc21369_ezkit.$(OBJEXT)
+@ENABLE_BUS_SLSUP3_TRUE@am__objects_35 = slsup3.$(OBJEXT)
+@ENABLE_BUS_TX4925_TRUE@am__objects_36 = tx4925.$(OBJEXT)
+@ENABLE_BUS_ZEFANT_XS3_TRUE@am__objects_37 = zefant-xs3.$(OBJEXT)
+am_libbus_a_OBJECTS = buses.$(OBJEXT) generic_bus.$(OBJEXT) \
+       readmem.$(OBJEXT) writemem.$(OBJEXT) $(am__objects_1) \
+       $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+       $(am__objects_5) $(am__objects_6) $(am__objects_7) \
+       $(am__objects_8) $(am__objects_9) $(am__objects_10) \
+       $(am__objects_11) $(am__objects_12) $(am__objects_13) \
+       $(am__objects_14) $(am__objects_15) $(am__objects_16) \
+       $(am__objects_17) $(am__objects_18) $(am__objects_19) \
+       $(am__objects_20) $(am__objects_21) $(am__objects_22) \
+       $(am__objects_23) $(am__objects_24) $(am__objects_25) \
+       $(am__objects_26) $(am__objects_27) $(am__objects_28) \
+       $(am__objects_29) $(am__objects_30) $(am__objects_31) \
+       $(am__objects_32) $(am__objects_33) $(am__objects_34) \
+       $(am__objects_35) $(am__objects_36) $(am__objects_37)
+libbus_a_OBJECTS = $(am_libbus_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/tools/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libbus_a_SOURCES)
+DIST_SOURCES = $(am__libbus_a_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FTD2XXLIB = @FTD2XXLIB@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBFTDI_CONFIG = @LIBFTDI_CONFIG@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBUSB_CONFIG = @LIBUSB_CONFIG@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVN_REVISION = @SVN_REVISION@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_LIBRARIES = libbus.a
+libbus_a_SOURCES = buses.c buses.h generic_bus.c generic_bus.h \
+       pxa2x0_mc.h readmem.c writemem.c $(am__append_1) \
+       $(am__append_2) $(am__append_3) $(am__append_4) \
+       $(am__append_5) $(am__append_6) $(am__append_7) \
+       $(am__append_8) $(am__append_9) $(am__append_10) \
+       $(am__append_11) $(am__append_12) $(am__append_13) \
+       $(am__append_14) $(am__append_15) $(am__append_16) \
+       $(am__append_17) $(am__append_18) $(am__append_19) \
+       $(am__append_20) $(am__append_21) $(am__append_22) \
+       $(am__append_23) $(am__append_24) $(am__append_25) \
+       $(am__append_26) $(am__append_27) $(am__append_28) \
+       $(am__append_29) $(am__append_30) $(am__append_31) \
+       $(am__append_32) $(am__append_33) $(am__append_34) \
+       $(am__append_35) $(am__append_36) $(am__append_37)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.rules $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/bus/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  src/bus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLIBRARIES:
+       -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libbus.a: $(libbus_a_OBJECTS) $(libbus_a_DEPENDENCIES) 
+       -rm -f libbus.a
+       $(libbus_a_AR) libbus.a $(libbus_a_OBJECTS) $(libbus_a_LIBADD)
+       $(RANLIB) libbus.a
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/au1500.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avr32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bcm1250.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf533_ezkit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf533_stamp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf537_stamp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf548_ezkit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bf561_ezkit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bscoach.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buses.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ejtag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ejtag_dma.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fjmem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generic_bus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h7202.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ixp425.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jopcyc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lh7a400.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpc5200.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpc824x.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc405ep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppc440gx_ebc8.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prototype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pxa2x0.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readmem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s3c4510x.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sa1110.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh7727.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh7750r.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh7751r.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sharc21065l.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sharc21369_ezkit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slsup3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tx4925.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writemem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zefant-xs3.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-noinstLIBRARIES ctags distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am
+
+
+lint:
+       -test "$(SOURCES)" && splint $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(SOURCES)
+       test -z "$(SUBDIRS)" || $(MAKE) RECURSIVE_TARGETS=lint-recursive $(AM_MAKEFLAGS) lint-recursive
+
+lint-am: Makefile @MAINTAINER_MODE_TRUE@ $(top_srcdir)/Makefile.rules
+
+.PHONY: lint lint-am
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
index a249eee..68a7a3a 100644 (file)
@@ -127,6 +127,9 @@ const bus_driver_t *bus_drivers[] = {
 #ifdef ENABLE_BUS_SHARC_21065L
        &sharc_21065L_bus,
 #endif
+#ifdef ENABLE_BUS_SHARC_21369_EZKIT
+       &sharc_21369_ezkit_bus,
+#endif
 #ifdef ENABLE_BUS_SLSUP3
        &slsup3_bus,
 #endif
index 33f97c8..1c42ebd 100644 (file)
@@ -57,6 +57,7 @@ extern const bus_driver_t sh7727_bus;
 extern const bus_driver_t sh7750r_bus;
 extern const bus_driver_t sh7751r_bus;
 extern const bus_driver_t sharc_21065L_bus;
+extern const bus_driver_t sharc_21369_ezkit_bus;
 extern const bus_driver_t slsup3_bus;
 extern const bus_driver_t tx4925_bus;
 extern const bus_driver_t zefant_xs3_bus;
diff --git a/jtag/src/bus/sharc21369_ezkit.c b/jtag/src/bus/sharc21369_ezkit.c
new file mode 100644 (file)
index 0000000..a65cb18
--- /dev/null
@@ -0,0 +1,314 @@
+/*
+ * $Id$
+ *
+ * Analog Device's SHARC 21369 compatible bus driver via BSR
+ * Copyright (C) 2009- Monami Software Limited Partnership, JAPAN.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Written by Masaki Muranaka <monaka at monami-software.com>
+ *  Original version written by Ajith Kumar P.C <ajithpc@kila.com>
+ *
+ * Documentation:
+ *      [1] Analog Devices Inc.,"ADSP-21369 SHARC Technical Reference", September 1998
+ *      [2] Analog Devices Inc.,"ADSP-21369 SHARC User's Manual", September 1998
+ *
+ */
+
+#include "sysdep.h"
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "part.h"
+#include "bus.h"
+#include "bssignal.h"
+#include "jtag.h"
+#include "buses.h"
+#include "generic_bus.h"
+
+//no SDRAM access
+
+typedef struct {
+       uint32_t last_adr;
+       signal_t *addr[24];
+       signal_t *data[32];
+       signal_t *ms0;  //boot memory select
+       signal_t *ms1;  //boot memory select
+       signal_t *nwe;
+       signal_t *nrd;
+} bus_params_t;
+
+#define        LAST_ADR        ((bus_params_t *) bus->params)->last_adr
+#define        ADDR            ((bus_params_t *) bus->params)->addr
+#define        DATA            ((bus_params_t *) bus->params)->data
+#define        MS0             ((bus_params_t *) bus->params)->ms0
+#define        MS1             ((bus_params_t *) bus->params)->ms1
+#define        nWE             ((bus_params_t *) bus->params)->nwe
+#define        nRD             ((bus_params_t *) bus->params)->nrd
+
+/**
+ * bus->driver->(*new_bus)
+ *
+ */
+static bus_t *sharc_21369_bus_new( chain_t *chain, const bus_driver_t *driver, char *cmd_params[] )
+{
+       bus_t *bus;
+       part_t *part;
+       char buff[15];
+       int i;
+       int failed = 0;
+
+       bus = calloc( 1, sizeof (bus_t) );
+       if (!bus)
+               return NULL;
+
+       bus->driver = driver;
+       bus->params = calloc( 1, sizeof (bus_params_t) );
+       if (!bus->params) {
+               free( bus );
+               return NULL;
+       }
+
+       CHAIN = chain;
+       PART = part = chain->parts->parts[chain->active_part];
+
+       for (i = 0; i < 24; i++) {
+               sprintf( buff, "ADDR%d", i );
+               failed |= generic_bus_attach_sig( part, &(ADDR[i]), buff );
+       }
+
+       for (i = 0; i < 32; i++) {
+               sprintf( buff, "DATA%d", i );
+               failed |= generic_bus_attach_sig( part, &(DATA[i]), buff );
+       }
+
+       failed |= generic_bus_attach_sig( part, &(MS0), "MS0_B" );
+       failed |= generic_bus_attach_sig( part, &(MS1), "MS1_B" );
+       failed |= generic_bus_attach_sig( part, &(nWE), "WR_B"  );
+       failed |= generic_bus_attach_sig( part, &(nRD), "RD_B"  );
+
+       if (failed) {
+               free( bus->params );
+               free( bus );
+               return NULL;
+       }
+
+       return bus;
+}
+
+/**
+ * bus->driver->(*printinfo)
+ *
+ */
+static void sharc_21369_bus_printinfo( bus_t *bus )
+{
+       int i;
+
+       for (i = 0; i < CHAIN->parts->len; i++)
+               if (PART == CHAIN->parts->parts[i])
+                       break;
+       printf( _("Analog Device's SHARC 21369 compatible bus driver via BSR (JTAG part No. %d)\n"), i );
+}
+
+/**
+ * bus->driver->(*area)
+ *
+ */
+static int
+sharc_21369_ezkit_bus_area( bus_t *bus, uint32_t adr, bus_area_t *area )
+{
+       part_t *p = PART;
+
+       if (UINT32_C(0x200000) <= adr && adr <= UINT32_C(0x027FFFF)) {
+
+               area->description = N_("Boot Memory Select");
+               area->start  = UINT32_C(0x200000);
+               area->length = UINT64_C(0x080000);
+               area->width = 8;
+
+               part_set_signal( p, MS0, 1, 1);
+               part_set_signal( p, MS1, 1, 0);
+
+       } else {
+               area->description = NULL;
+               area->start = UINT32_C(0xffffffff);
+               area->length = UINT64_C(0x080000);
+               area->width = 0;
+
+               part_set_signal( p, MS0, 1, 1);
+               part_set_signal( p, MS1, 1, 1);
+       }
+
+       return URJTAG_STATUS_OK;
+}
+
+static void
+setup_address( bus_t *bus, uint32_t a )
+{
+       int i;
+       part_t *p = PART;
+
+       for (i = 0; i < 24; i++)
+               part_set_signal( p, ADDR[i], 1, (a >> i) & 1 );
+}
+
+static void
+set_data_in( bus_t *bus, uint32_t adr )
+{
+       int i;
+       part_t *p = PART;
+       bus_area_t area;
+
+       bus->driver->area( bus, adr, &area );
+
+       for (i = 0; i < area.width; i++)
+               part_set_signal( p, DATA[i], 0, 0 );
+}
+
+
+static void
+setup_data( bus_t *bus, uint32_t adr, uint32_t d )
+{
+       int i;
+       part_t *p = PART;
+       bus_area_t area;
+
+       bus->driver->area( bus, adr, &area );
+
+       for (i = 0; i < area.width; i++)
+               part_set_signal( p, DATA[i], 1, (d >> i) & 1 );
+}
+
+/**
+ * bus->driver->(*read_start)
+ *
+ */
+static void
+sharc_21369_bus_read_start( bus_t *bus, uint32_t adr )
+{
+       chain_t *chain = CHAIN;
+       part_t *p = PART;
+       bus_area_t area;
+
+       bus->driver->area( bus, adr, &area );
+
+       LAST_ADR = adr;
+
+       part_set_signal( p, nWE, 1, 1 );
+       part_set_signal( p, nRD, 1, 0 );
+
+       setup_address( bus, adr );
+       set_data_in( bus, adr );
+
+       chain_shift_data_registers( chain, 0 );
+}
+
+/**
+ * bus->driver->(*read_next)
+ *
+ */
+static uint32_t
+sharc_21369_bus_read_next( bus_t *bus, uint32_t adr )
+{
+       part_t *p = PART;
+       chain_t *chain = CHAIN;
+       uint32_t d = 0;
+       int i;
+       bus_area_t area;
+
+       LAST_ADR = adr;
+
+       bus->driver->area( bus, adr, &area );
+
+       setup_address( bus, adr );
+       chain_shift_data_registers( chain, 1 );
+
+       for (i = 0; i < area.width; i++)
+               d |= (uint32_t) (part_get_signal( p, DATA[i] ) << i);
+
+       return d;
+}
+
+/**
+ * bus->driver->(*read_end)
+ *
+ */
+static uint32_t
+sharc_21369_bus_read_end( bus_t *bus )
+{
+       part_t *p = PART;
+       chain_t *chain = CHAIN;
+       int i;
+       uint32_t d = 0;
+       bus_area_t area;
+
+       bus->driver->area( bus, LAST_ADR, &area );
+
+       part_set_signal( p, nWE, 1, 1 );
+       part_set_signal( p, nRD, 1, 1 );
+
+       chain_shift_data_registers( chain, 1 );
+
+       for (i = 0; i < area.width; i++)
+               d |= (uint32_t) (part_get_signal( p, DATA[i] ) << i);
+
+       return d;
+}
+
+/**
+ * bus->driver->(*write)
+ *
+ */
+static void
+sharc_21369_bus_write( bus_t *bus, uint32_t adr, uint32_t data )
+{
+       part_t *p = PART;
+       chain_t *chain = CHAIN;
+       bus_area_t area;
+
+       bus->driver->area( bus, adr, &area );
+
+       part_set_signal( p, nWE, 1, 1 );
+       part_set_signal( p, nRD, 1, 1 );
+
+       setup_address( bus, adr );
+       setup_data( bus, adr, data );
+
+       chain_shift_data_registers( chain, 0 );
+
+       part_set_signal( p, nWE, 1, 0 );
+       chain_shift_data_registers( chain, 0 );
+       part_set_signal( p, nWE, 1, 1 );
+       chain_shift_data_registers( chain, 0 );
+}
+
+const bus_driver_t sharc_21369_ezkit_bus = {
+       "SHARC_21369_EZKIT",
+       N_("SHARC_21369 EZ-KIT bus driver via BSR"),
+       sharc_21369_bus_new,
+       generic_bus_free,
+       sharc_21369_bus_printinfo,
+       generic_bus_prepare_extest,
+       sharc_21369_ezkit_bus_area,
+       sharc_21369_bus_read_start,
+       sharc_21369_bus_read_next,
+       sharc_21369_bus_read_end,
+       generic_bus_read,
+       sharc_21369_bus_write,
+       generic_bus_no_init
+};