int arm_jtag_scann(arm_jtag_t *jtag_info, u32 new_scan_chain) { int retval = ERROR_OK; if(jtag_info->cur_scan_chain != new_scan_chain) { u32 values[1]; int num_bits[1]; values[0]=new_scan_chain; num_bits[0]=jtag_info->scann_size; if((retval = arm_jtag_set_instr(jtag_info, jtag_info->scann_instr, NULL)) != ERROR_OK) { return retval; } jtag_add_dr_out(jtag_info->tap, 1, num_bits, values, -1); jtag_info->cur_scan_chain = new_scan_chain; } return retval; }
static inline int arm7tdmi_clock_out_inner(struct arm_jtag *jtag_info, uint32_t out, int breakpoint) { uint32_t values[2] = {breakpoint, flip_u32(out, 32)}; jtag_add_dr_out(jtag_info->tap, 2, arm7tdmi_num_bits, values, TAP_DRPAUSE); jtag_add_runtest(0, TAP_DRPAUSE); return ERROR_OK; }
int arm_jtag_scann_inner(struct arm_jtag *jtag_info, uint32_t new_scan_chain, tap_state_t end_state) { int retval = ERROR_OK; uint32_t values[1]; int num_bits[1]; values[0] = new_scan_chain; num_bits[0] = jtag_info->scann_size; retval = arm_jtag_set_instr(jtag_info, jtag_info->scann_instr, NULL, end_state); if (retval != ERROR_OK) return retval; jtag_add_dr_out(jtag_info->tap, 1, num_bits, values, end_state); jtag_info->cur_scan_chain = new_scan_chain; return retval; }
int arm_jtag_scann_inner(struct arm_jtag *jtag_info, uint32_t new_scan_chain) { int retval = ERROR_OK; uint32_t values[1]; int num_bits[1]; values[0]=new_scan_chain; num_bits[0]=jtag_info->scann_size; if ((retval = arm_jtag_set_instr(jtag_info, jtag_info->scann_instr, NULL)) != ERROR_OK) { return retval; } jtag_add_dr_out(jtag_info->tap, 1, num_bits, values, jtag_get_end_state()); jtag_info->cur_scan_chain = new_scan_chain; return retval; }