From 57dce9560a2885782860b127fd1629798d659440 Mon Sep 17 00:00:00 2001 From: Stephane Bonnet Date: Wed, 4 Apr 2012 21:05:25 +0200 Subject: [PATCH] ft2232: Support for Digilent HS1 USB adapter * Added support to the FT2232 driver for the FT2232H-based Digilent HS1 adapter. Change-Id: Iab6cc15f299badaf115615b5d4d785ecb2273c27 Signed-off-by: Stephane Bonnet Reviewed-on: http://openocd.zylin.com/558 Tested-by: jenkins Reviewed-by: Spencer Oliver --- doc/openocd.texi | 2 ++ src/jtag/drivers/ft2232.c | 34 ++++++++++++++++++++++++++++++++++ tcl/interface/digilent-hs1.cfg | 15 +++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tcl/interface/digilent-hs1.cfg diff --git a/doc/openocd.texi b/doc/openocd.texi index 71605ecea3..55fbf4ff38 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -374,6 +374,8 @@ Stellaris eval boards, they can be used to debug other target boards. @* Link @url{http://www.hitex.com/index.php?id=cortino} @item @b{dlp-usb1232h} @* Link @url{http://www.dlpdesign.com/usb/usb1232h.shtml} +@item @b{digilent-hs1} +@* Link @url{http://www.digilentinc.com/Products/Detail.cfm?Prod=JTAG-HS1} @end itemize @section USB-JTAG / Altera USB-Blaster compatibles diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c index 3a156bfea7..e6a7363fc2 100644 --- a/src/jtag/drivers/ft2232.c +++ b/src/jtag/drivers/ft2232.c @@ -193,6 +193,7 @@ static int redbee_init(void); static int lisa_l_init(void); static int flossjtag_init(void); static int xds100v2_init(void); +static int digilent_hs1_init(void); /* reset procedures for supported layouts */ static void ftx23_reset(int trst, int srst); @@ -211,6 +212,7 @@ static void signalyzer_h_reset(int trst, int srst); static void ktlink_reset(int trst, int srst); static void redbee_reset(int trst, int srst); static void xds100v2_reset(int trst, int srst); +static void digilent_hs1_reset(int trst, int srst); /* blink procedures for layouts that support a blinking led */ static void olimex_jtag_blink(void); @@ -337,6 +339,11 @@ static const struct ft2232_layout ft2232_layouts[] = { .init = xds100v2_init, .reset = xds100v2_reset, }, + { .name = "digilent-hs1", + .init = digilent_hs1_init, + .reset = digilent_hs1_reset, + .channel = INTERFACE_A, + }, { .name = NULL, /* END OF TABLE */ }, }; @@ -4179,6 +4186,33 @@ static void ktlink_blink(void) buffer_write(high_direction); } +/******************************************************************** + * Support for Digilent HS-1 + * JTAG adapter from Digilent + * http://www.digilent.com + * Author: Stephane Bonnet bonnetst@hds.utc.fr + *******************************************************************/ + +static int digilent_hs1_init(void) +{ + /* the adapter only supports the base JTAG signals, no nTRST + nor nSRST */ + low_output = 0x88; + low_direction = 0x8b; + + /* initialize low byte for jtag */ + if (ft2232_set_data_bits_low_byte(low_output, low_direction) != ERROR_OK) { + LOG_ERROR("couldn't initialize FT2232 with 'digilent_hs1' layout"); + return ERROR_JTAG_INIT_FAILED; + } + return ERROR_OK; +} + +static void digilent_hs1_reset(int trst, int srst) +{ + /* Dummy function, no reset signals supported. */ +} + static const struct command_registration ft2232_command_handlers[] = { { .name = "ft2232_device_desc", diff --git a/tcl/interface/digilent-hs1.cfg b/tcl/interface/digilent-hs1.cfg new file mode 100644 index 0000000000..e35f0cfc7e --- /dev/null +++ b/tcl/interface/digilent-hs1.cfg @@ -0,0 +1,15 @@ +# +# Digilent HS1 +# +# The Digilent HS1 is a high-speed FT2232H-based adapter, compliant with the +# Xilinx JTAG 14-pin pinout. +# It does not support ARM reset signals (SRST and TRST) but can still be used for +# hardware debugging, with some limitations. +# +# http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,922&Prod=JTAG-HS1 +# + +interface ft2232 +ft2232_device_desc "Digilent Adept USB Device" +ft2232_layout digilent-hs1 +ft2232_vid_pid 0x0403 0x6010 -- 2.30.2