Added OpenJTAG Driver

Updated OpenJTAG driver from www.openjtag.org to work with latest version of OpenOCD.

Change-Id: I2917f4e5835fb9ca5265e81dc38515fa97ae9503
Signed-off-by: Ryan Corbin <corbin.ryan@gmail.com>
Reviewed-on: http://openocd.zylin.com/1406
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Ryan Corbin
2013-05-15 13:13:50 -04:00
committed by Spencer Oliver
parent cf8a3c3d70
commit 76b3563860
5 changed files with 889 additions and 3 deletions

View File

@@ -446,6 +446,14 @@ AC_ARG_ENABLE([usbprog],
AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
[build_usbprog=$enableval], [build_usbprog=no])
AC_ARG_ENABLE([openjtag_ftd2xx],
AS_HELP_STRING([--enable-openjtag_ftd2xx], [Enable building support for the OpenJTAG Programmer with ftd2xx driver]),
[build_openjtag_ftd2xx=$enableval], [build_openjtag_ftd2xx=no])
AC_ARG_ENABLE([openjtag_ftdi],
AS_HELP_STRING([--enable-openjtag_ftdi], [Enable building support for the OpenJTAG Programmer with ftdi driver]),
[build_openjtag_ftdi=$enableval], [build_openjtag_ftdi=no])
AC_ARG_ENABLE([oocd_trace],
AS_HELP_STRING([--enable-oocd_trace],
[Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
@@ -754,6 +762,19 @@ else
AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
fi
AC_DEFINE([BUILD_OPENJTAG], [0], [0 if you don't want the OpenJTAG driver.])
AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [0], [0 if you don't want the OpenJTAG driver with FTD2XX driver.])
AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [0], [0 if you don't want to build OpenJTAG driver with libftdi.])
if test $build_openjtag_ftd2xx = yes; then
AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG driver.])
AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [1], [1 if you want the OpenJTAG driver with FTD2XX driver.])
fi
if test $build_openjtag_ftdi = yes; then
AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG drvier.])
AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [1], [1 if you want to build OpenJTAG with FTDI driver.])
fi
if test $build_oocd_trace = yes; then
AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
else
@@ -849,7 +870,7 @@ then
AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
# if we are given a zipdir...
@@ -919,7 +940,7 @@ then
AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
# Must be linux
if test $host_os != linux-gnu && test $host_os != linux ; then
AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
@@ -1066,7 +1087,8 @@ LDFLAGS=$LDFLAGS_SAVE
CFLAGS=$CFLAGS_SAVE
fi
if test $build_ft2232_libftdi = yes -o $build_usb_blaster_libftdi = yes; then
if test $build_ft2232_libftdi = yes -o $build_usb_blaster_libftdi = yes -o \
$build_openjtag_ftdi = yes; then
# We assume: the package is preinstalled in the proper place
# these present as 2 libraries..
LIBS="$LIBS -lftdi -lusb"
@@ -1198,6 +1220,7 @@ AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
AM_CONDITIONAL([USBPROG], [test $build_usbprog = yes])
AM_CONDITIONAL([OPENJTAG], [test $build_openjtag_ftd2xx = yes -o $build_openjtag_ftdi = yes])
AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
AM_CONDITIONAL([JLINK], [test $build_jlink = yes])
AM_CONDITIONAL([AICE], [test $build_aice = yes])

View File

@@ -115,6 +115,10 @@ if SYSFSGPIO
DRIVERFILES += sysfsgpio.c
endif
if OPENJTAG
DRIVERFILES += openjtag.c
endif
noinst_HEADERS = \
bitbang.h \
bitq.h \

845
src/jtag/drivers/openjtag.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -83,6 +83,9 @@ extern struct jtag_interface presto_interface;
#if BUILD_USBPROG == 1
extern struct jtag_interface usbprog_interface;
#endif
#if BUILD_OPENJTAG == 1
extern struct jtag_interface openjtag_interface;
#endif
#if BUILD_JLINK == 1
extern struct jtag_interface jlink_interface;
#endif
@@ -170,6 +173,9 @@ struct jtag_interface *jtag_interfaces[] = {
#if BUILD_USBPROG == 1
&usbprog_interface,
#endif
#if BUILD_OPENJTAG == 1
&openjtag_interface,
#endif
#if BUILD_JLINK == 1
&jlink_interface,
#endif

View File

@@ -0,0 +1,8 @@
#
# OpenJTAG
#
# www.openjtag.org
#
interface openjtag
openjtag_device_desc "Open JTAG Project"