From 63fa73169bd88258ef82f709e79769eacc50f793 Mon Sep 17 00:00:00 2001 From: Andreas Fritiofson Date: Thu, 7 Nov 2013 00:40:50 +0100 Subject: Retire jtag_add_dr_out The out only version of jtag_add_dr_scan smells like a bogus optimization that complicates the minidriver API for questionable gain. The function was only used by four old ARM targets. Rewrite the callers to use the generic function and remove all implementations. Change-Id: I13b643687ee8ed6bc9b6336e7096c34f40ea96af Signed-off-by: Andreas Fritiofson Reviewed-on: http://openocd.zylin.com/1801 Tested-by: jenkins Reviewed-by: Spencer Oliver --- src/jtag/zy1000/jtag_minidriver.h | 46 --------------------------------------- 1 file changed, 46 deletions(-) (limited to 'src/jtag/zy1000/jtag_minidriver.h') diff --git a/src/jtag/zy1000/jtag_minidriver.h b/src/jtag/zy1000/jtag_minidriver.h index 2ae31bc5..d7fa4376 100644 --- a/src/jtag/zy1000/jtag_minidriver.h +++ b/src/jtag/zy1000/jtag_minidriver.h @@ -169,52 +169,6 @@ static inline void shiftValueInner(const enum tap_state state, #endif } -static inline void interface_jtag_add_dr_out_core(struct jtag_tap *target_tap, - int num_fields, - const int *num_bits, - const uint32_t *value, - enum tap_state end_state) -{ - enum tap_state pause_state = TAP_DRSHIFT; - - struct jtag_tap *tap, *nextTap; - for (tap = jtag_tap_next_enabled(NULL); tap != NULL; tap = nextTap) { - nextTap = jtag_tap_next_enabled(tap); - if (nextTap == NULL) - pause_state = end_state; - if (tap == target_tap) { - int j; - for (j = 0; j < (num_fields-1); j++) - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, num_bits[j], value[j]); - shiftValueInner(TAP_DRSHIFT, pause_state, num_bits[j], value[j]); - } else { - /* program the scan field to 1 bit length, and ignore it's value */ - shiftValueInner(TAP_DRSHIFT, pause_state, 1, 0); - } - } -} - -static inline void interface_jtag_add_dr_out(struct jtag_tap *target_tap, - int num_fields, - const int *num_bits, - const uint32_t *value, - enum tap_state end_state) -{ - - int singletap = (jtag_tap_next_enabled(jtag_tap_next_enabled(NULL)) == NULL); - if ((singletap) && (num_fields == 3)) { - /* used by embeddedice_write_reg_inner() */ - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, num_bits[0], value[0]); - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, num_bits[1], value[1]); - shiftValueInner(TAP_DRSHIFT, end_state, num_bits[2], value[2]); - } else if ((singletap) && (num_fields == 2)) { - /* used by arm7 code */ - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, num_bits[0], value[0]); - shiftValueInner(TAP_DRSHIFT, end_state, num_bits[1], value[1]); - } else - interface_jtag_add_dr_out_core(target_tap, num_fields, num_bits, value, end_state); -} - #if BUILD_ZY1000_MASTER #define interface_jtag_add_callback(callback, in) callback(in) #define interface_jtag_add_callback4(callback, in, data1, data2, \ -- cgit v1.2.3-18-g5258