The bitbang driver leaves the TCK 0 when in idle
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 12 Mar 2008 16:01:30 +0000 (16:01 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Wed, 12 Mar 2008 16:01:30 +0000 (16:01 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@505 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/bitbang.c

index b5ea8fe284773049127a2765f55a0fa7d79d8f37..77d60ba1c942cb7d88c03e359503054dc84df80d 100644 (file)
@@ -41,6 +41,9 @@ bitbang_interface_t *bitbang_interface;
 
 int bitbang_execute_queue(void);
 
 
 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)
 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--;
        }
                state_count++;
                num_states--;
        }
+       bitbang_interface->write(0, tms, 0);
        
        end_state = cur_state;
 }
        
        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();
        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)
 }
 
 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();
        
        if (cur_state != end_state)
                bitbang_state_move();
+       else
+               bitbang_interface->write(0, tms, 0);
 }
 
 int bitbang_execute_queue(void)
 }
 
 int bitbang_execute_queue(void)