int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, void *delete_me_and_submit_patch)
{
- jtag_tap_t *tap;
+ struct jtag_tap *tap;
tap = ejtag_info->tap;
- if (tap==NULL)
+ if (tap == NULL)
return ERROR_FAIL;
if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (uint32_t)new_instr)
field.num_bits = tap->ir_length;
field.out_value = t;
buf_set_u32(field.out_value, 0, field.num_bits, new_instr);
-
field.in_value = NULL;
-
-
-
-
+
jtag_add_ir_scan(1, &field, jtag_get_end_state());
}
field.tap = ejtag_info->tap;
field.num_bits = 32;
field.out_value = NULL;
-
field.in_value = (void*)idcode;
-
-
-
-
+
jtag_add_dr_scan(1, &field, jtag_get_end_state());
if (jtag_execute_queue() != ERROR_OK)
field.tap = ejtag_info->tap;
field.num_bits = 32;
field.out_value = NULL;
-
field.in_value = (void*)impcode;
-
-
-
-
+
jtag_add_dr_scan(1, &field, jtag_get_end_state());
if (jtag_execute_queue() != ERROR_OK)
int mips_ejtag_drscan_32(mips_ejtag_t *ejtag_info, uint32_t *data)
{
- jtag_tap_t *tap;
+ struct jtag_tap *tap;
tap = ejtag_info->tap;
- if (tap==NULL)
+ if (tap == NULL)
return ERROR_FAIL;
scan_field_t field;
uint8_t t[4], r[4];
field.num_bits = 32;
field.out_value = t;
buf_set_u32(field.out_value, 0, field.num_bits, *data);
-
field.in_value = r;
-
-
-
-
+
jtag_add_dr_scan(1, &field, jtag_get_end_state());
if ((retval = jtag_execute_queue()) != ERROR_OK)
ejtag_ctrl = ejtag_info->ejtag_ctrl;
mips_ejtag_drscan_32(ejtag_info, &ejtag_ctrl);
LOG_DEBUG("ejtag_ctrl: 0x%8.8" PRIx32 "", ejtag_ctrl);
- if((ejtag_ctrl & EJTAG_CTRL_BRKST) == 0)
+ if ((ejtag_ctrl & EJTAG_CTRL_BRKST) == 0)
LOG_DEBUG("Failed to enter Debug Mode!");
return ERROR_OK;
{
uint32_t inst;
inst = MIPS32_DRET;
-
+
/* execute our dret instruction */
mips32_pracc_exec(ejtag_info, 1, &inst, 0, NULL, 0, NULL, 0);
break;
}
LOG_DEBUG("EJTAG: features:%s%s%s%s%s%s%s",
- ejtag_info->impcode & (1<<28) ? " R3k": " R4k",
- ejtag_info->impcode & (1<<24) ? " DINT": "",
- ejtag_info->impcode & (1<<22) ? " ASID_8": "",
- ejtag_info->impcode & (1<<21) ? " ASID_6": "",
- ejtag_info->impcode & (1<<16) ? " MIPS16": "",
- ejtag_info->impcode & (1<<14) ? " noDMA": " DMA",
- ejtag_info->impcode & (1<<0) ? " MIPS64": " MIPS32"
- );
-
- if((ejtag_info->impcode & (1<<14)) == 0)
+ ejtag_info->impcode & (1 << 28) ? " R3k": " R4k",
+ ejtag_info->impcode & (1 << 24) ? " DINT": "",
+ ejtag_info->impcode & (1 << 22) ? " ASID_8": "",
+ ejtag_info->impcode & (1 << 21) ? " ASID_6": "",
+ ejtag_info->impcode & (1 << 16) ? " MIPS16": "",
+ ejtag_info->impcode & (1 << 14) ? " noDMA": " DMA",
+ ejtag_info->impcode & (1 << 0) ? " MIPS64": " MIPS32"
+);
+
+ if ((ejtag_info->impcode & (1 << 14)) == 0)
LOG_DEBUG("EJTAG: DMA Access Mode Support Enabled");
/* set initial state for ejtag control reg */