diff options
-rw-r--r-- | doc/openocd.texi | 8 | ||||
-rw-r--r-- | src/jtag/ft2232.c | 63 |
2 files changed, 29 insertions, 42 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index d35dd599..09761c6b 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -286,7 +286,7 @@ As of 28/Nov/2008, the following are supported: @itemize @bullet @item @b{usbjtag} -@* Link Unknown [not easily verified] +@* Link @url{www.ixo.de/info/usb_jtag} @item @b{jtagkey} @* See: @url{http://www.amontec.com/jtagkey.shtml} @item @b{oocdlink} @@ -304,7 +304,9 @@ As of 28/Nov/2008, the following are supported: @item @b{comstick} @* Link: @url{http://www.hitex.com/index.php?id=383} @item @b{stm32stick} -@* Link Unknown [not easily verified] +@* Link @url{http://www.hitex.com/stm32-stick} +@item @b{axm0432_jtag} +@* Axiom AXM-0432 Link @url{http://www.axman.com} @end itemize @section USB JLINK based @@ -370,7 +372,7 @@ produced, PDF schematics are easily found and it is easy to make. @* Unknown. @item @b{Lattice} -@* From Lattice Semiconductor [link unknown] +@* ispDownload from Lattice Semiconductor @url{http://www.latticesemi.com/lit/docs/devtools/dlcable.pdf} @item @b{flashlink} @* From ST Microsystems, link: diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c index 35275f5f..b0c1c35c 100644 --- a/src/jtag/ft2232.c +++ b/src/jtag/ft2232.c @@ -114,7 +114,6 @@ void comstick_reset(int trst, int srst); void stm32stick_reset(int trst, int srst); void axm0432_jtag_reset(int trst, int srst); - /* blink procedures for layouts that support a blinking led */ void olimex_jtag_blink(void); void turtle_jtag_blink(void); @@ -1049,7 +1048,6 @@ void olimex_jtag_reset(int trst, int srst) LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output, high_direction); } - void axm0432_jtag_reset(int trst, int srst) { if (trst == 1) @@ -1062,24 +1060,21 @@ void axm0432_jtag_reset(int trst, int srst) high_output |= nTRST; } - if (srst == 1) - { - high_output &= ~nSRST; - } - else if (srst == 0) - { - high_output |= nSRST; - } - - /* command "set data bits low byte" */ - BUFFER_ADD = 0x82; - BUFFER_ADD = high_output; - BUFFER_ADD = high_direction; - LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output, high_direction); -} - - + if (srst == 1) + { + high_output &= ~nSRST; + } + else if (srst == 0) + { + high_output |= nSRST; + } + /* command "set data bits low byte" */ + BUFFER_ADD = 0x82; + BUFFER_ADD = high_output; + BUFFER_ADD = high_direction; + LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output, high_direction); +} void flyswatter_reset(int trst, int srst) { @@ -1414,15 +1409,13 @@ static int ft2232_init_ftd2xx(u16 vid, u16 pid, int more, int *try_more) char *openex_string = NULL; u8 latency_timer; - LOG_DEBUG("'ft2232' interface using FTD2XX with '%s' layout (%4.4x:%4.4x)", - ft2232_layout, vid, pid); + LOG_DEBUG("'ft2232' interface using FTD2XX with '%s' layout (%4.4x:%4.4x)",ft2232_layout, vid, pid); #if IS_WIN32 == 0 /* Add non-standard Vid/Pid to the linux driver */ if ((status = FT_SetVIDPID(vid, pid)) != FT_OK) { - LOG_WARNING("couldn't add %4.4x:%4.4x", - vid, pid); + LOG_WARNING("couldn't add %4.4x:%4.4x", vid, pid); } #endif @@ -1455,8 +1448,7 @@ static int ft2232_init_ftd2xx(u16 vid, u16 pid, int more, int *try_more) DWORD num_devices; if (more) { - LOG_WARNING("unable to open ftdi device (trying more): %lu", - status); + LOG_WARNING("unable to open ftdi device (trying more): %lu", status); *try_more = 1; return ERROR_JTAG_INIT_FAILED; } @@ -1758,13 +1750,10 @@ int usbjtag_init(void) return ERROR_OK; } - int axm0432_jtag_init(void) { u8 buf[3]; - u8 buf_read[1]; u32 bytes_written; - u32 bytes_read; low_output = 0x08; low_direction = 0x2b; @@ -1781,7 +1770,6 @@ int axm0432_jtag_init(void) return ERROR_JTAG_INIT_FAILED; } - if (strcmp(layout->name, "axm0432_jtag") == 0) { nTRST = 0x08; @@ -1798,16 +1786,16 @@ int axm0432_jtag_init(void) high_output = 0x0; high_direction = 0x0c; - if (jtag_reset_config & RESET_TRST_OPEN_DRAIN) + if (jtag_reset_config & RESET_TRST_OPEN_DRAIN) { - LOG_ERROR("can't set nTRSTOE to push-pull on the Dicarlo jtag"); - } + LOG_ERROR("can't set nTRSTOE to push-pull on the Dicarlo jtag"); + } else { high_output |= nTRST; } - if (jtag_reset_config & RESET_SRST_PUSH_PULL) + if (jtag_reset_config & RESET_SRST_PUSH_PULL) { LOG_ERROR("can't set nSRST to push-pull on the Dicarlo jtag"); } @@ -1831,9 +1819,6 @@ int axm0432_jtag_init(void) return ERROR_OK; } - - - int jtagkey_init(void) { u8 buf[3]; @@ -2048,7 +2033,7 @@ int turtle_init(void) } nSRST = 0x40; - + high_output = 0x00; high_direction = 0x0C; @@ -2091,7 +2076,7 @@ int comstick_init(void) nTRSTnOE = 0x00; /* no output enable for nTRST */ nSRST = 0x02; nSRSTnOE = 0x00; /* no output enable for nSRST */ - + high_output = 0x03; high_direction = 0x03; @@ -2134,7 +2119,7 @@ int stm32stick_init(void) nTRSTnOE = 0x00; /* no output enable for nTRST */ nSRST = 0x80; nSRSTnOE = 0x00; /* no output enable for nSRST */ - + high_output = 0x01; high_direction = 0x03; |