+int feroceon_dummy_clock_out(arm_jtag_t *jtag_info, uint32_t instr)
+{
+ scan_field_t fields[3];
+ uint8_t out_buf[4];
+ uint8_t instr_buf[4];
+ uint8_t sysspeed_buf = 0x0;
+
+ /* prepare buffer */
+ buf_set_u32(out_buf, 0, 32, 0);
+
+ buf_set_u32(instr_buf, 0, 32, flip_u32(instr, 32));
+
+ jtag_set_end_state(TAP_DRPAUSE);
+ arm_jtag_scann(jtag_info, 0x1);
+
+ arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL);
+
+ fields[0].tap = jtag_info->tap;
+ fields[0].num_bits = 32;
+ fields[0].out_value = out_buf;
+ fields[0].in_value = NULL;
+
+ fields[1].tap = jtag_info->tap;
+ fields[1].num_bits = 3;
+ fields[1].out_value = &sysspeed_buf;
+ fields[1].in_value = NULL;
+
+ fields[2].tap = jtag_info->tap;
+ fields[2].num_bits = 32;
+ fields[2].out_value = instr_buf;
+ fields[2].in_value = NULL;
+
+ jtag_add_dr_scan(3, fields, jtag_get_end_state());
+
+ /* no jtag_add_runtest(0, jtag_get_end_state()) here */
+
+ return ERROR_OK;
+}
+
+void feroceon_change_to_arm(target_t *target, uint32_t *r0, uint32_t *pc)