Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}
Example #4
0
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;
}