jtag: basic support for P&E Micro OSBDM (aka OSJTAG) adapter

This driver provides support for the P&E Micro OSBDM adapter (sometimes
named as OSJTAG), mounted on the Freescale TWRK60N512 bord. Thus, it
provides a quick start when working with this board. The driver doesn't
use BDM commands, but work with OSBDM adapter using only JTAG commands.

Change-Id: Ibc3779538e666e07651d3136431e5d44344f3b07
Signed-off-by: Jan Dakinevich <jan.dakinevich@gmail.com>
Reviewed-on: http://openocd.zylin.com/492
Tested-by: jenkins
Reviewed-by: Tomas Frydrych <tf+openocd@r-finger.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Jan Dakinevich
2012-02-28 00:51:12 +04:00
committed by Spencer Oliver
parent 736e8bb773
commit 34d1f82c75
6 changed files with 759 additions and 3 deletions

View File

@@ -478,6 +478,10 @@ AC_ARG_ENABLE([stlink],
AS_HELP_STRING([--enable-stlink], [Enable building support for the ST-Link JTAG Programmer]),
[build_stlink=$enableval], [build_stlink=no])
AC_ARG_ENABLE([osbdm],
AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
[build_osbdm=$enableval], [build_osbdm=no])
AC_ARG_ENABLE([minidriver_dummy],
AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
[build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
@@ -783,6 +787,12 @@ else
AC_DEFINE(BUILD_STLINK, 0, [0 if you don't want the ST-Link JTAG driver.])
fi
if test $build_osbdm = yes; then
AC_DEFINE(BUILD_OSBDM, 1, [1 if you want the OSBDM driver.])
else
AC_DEFINE(BUILD_OSBDM, 0, [0 if you don't want the OSBDM driver.])
fi
if test "$use_internal_jimtcl" = yes; then
if test -f "$srcdir/jimtcl/configure.ac"; then
AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
@@ -1069,7 +1079,7 @@ fi
# Check for libusb1 ported drivers.
build_usb_ng=no
if test $build_jlink = yes -o $build_stlink = yes; then
if test $build_jlink = yes -o $build_stlink = yes -o $build_osbdm = yes; then
build_usb_ng=yes
fi
@@ -1118,6 +1128,7 @@ AM_CONDITIONAL([ARMJTAGEW], [test $build_armjtagew = yes])
AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
AM_CONDITIONAL([STLINK], [test $build_stlink = yes])
AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
AM_CONDITIONAL([USB], [test $build_usb = yes])
AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])

View File

@@ -98,6 +98,9 @@ endif
if STLINK
DRIVERFILES += stlink_usb.c
endif
if OSBDM
DRIVERFILES += osbdm.c
endif
noinst_HEADERS = \
bitbang.h \

722
src/jtag/drivers/osbdm.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -104,6 +104,9 @@ extern struct jtag_interface remote_bitbang_interface;
#if BUILD_STLINK == 1
extern struct jtag_interface stlink_interface;
#endif
#if BUILD_OSBDM == 1
extern struct jtag_interface osbdm_interface;
#endif
#endif /* standard drivers */
/**
@@ -176,6 +179,9 @@ struct jtag_interface *jtag_interfaces[] = {
#if BUILD_STLINK == 1
&stlink_interface,
#endif
#if BUILD_OSBDM == 1
&osbdm_interface,
#endif
#endif /* standard drivers */
NULL,
};

View File

@@ -1,10 +1,12 @@
#
# Freescale KwikStik development board
# Freescale TWRK60N512 development board
#
source [find target/k60.cfg]
reset_config trst_and_srst
$_TARGETNAME configure -event reset-init {
puts "-event reset-init occured"
}
#
# Bank definition for the 'program flash' (instructions and/or data)

12
tcl/interface/osbdm.cfg Normal file
View File

@@ -0,0 +1,12 @@
#
# P&E Micro OSBDM (aka OSJTAG) interface
#
# http://pemicro.com/osbdm/
#
interface osbdm
reset_config srst_only
#
# OSBDM doesn't support speed control
#
adapter_khz 1