From 45af9d83c90134ec929599bf4a05360e8bd1e8be Mon Sep 17 00:00:00 2001 From: oharboe Date: Wed, 12 Mar 2008 16:01:30 +0000 Subject: [PATCH] The bitbang driver leaves the TCK 0 when in idle git-svn-id: svn://svn.berlios.de/openocd/trunk@505 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/jtag/bitbang.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/jtag/bitbang.c b/src/jtag/bitbang.c index b5ea8fe284..77d60ba1c9 100644 --- a/src/jtag/bitbang.c +++ b/src/jtag/bitbang.c @@ -41,6 +41,9 @@ bitbang_interface_t *bitbang_interface; int bitbang_execute_queue(void); +/* The bitbang driver leaves the TCK 0 when in idle */ + + void bitbang_end_state(enum tap_state state) { if (tap_move_map[state] != -1) @@ -96,6 +99,7 @@ void bitbang_path_move(pathmove_command_t *cmd) state_count++; num_states--; } + bitbang_interface->write(0, tms, 0); end_state = cur_state; } @@ -125,6 +129,8 @@ void bitbang_runtest(int num_cycles) bitbang_end_state(saved_end_state); if (cur_state != end_state) bitbang_state_move(); + else + bitbang_interface->write(0, tms, 0); } void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size) @@ -178,6 +184,8 @@ void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size) if (cur_state != end_state) bitbang_state_move(); + else + bitbang_interface->write(0, tms, 0); } int bitbang_execute_queue(void) -- 2.30.2