X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fmips_ejtag.c;h=424105ee83b16bfed974dff8736e0c5df3f1997d;hb=e86dee32004d750e8654fe449bfcdffaed7339fa;hp=729b1a23e92c381a195aca672f2118625567c8fb;hpb=a28eaa85f73759bb189a46308642502c9fa5aa4b;p=openocd.git diff --git a/src/target/mips_ejtag.c b/src/target/mips_ejtag.c index 729b1a23e9..424105ee83 100644 --- a/src/target/mips_ejtag.c +++ b/src/target/mips_ejtag.c @@ -32,7 +32,7 @@ #include -int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, in_handler_t handler) +int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, void *delete_me_and_submit_patch) { jtag_tap_t *tap; @@ -40,7 +40,7 @@ int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, in_handler_t h if (tap==NULL) return ERROR_FAIL; - if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr) + if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (u32)new_instr) { scan_field_t field; u8 t[4]; @@ -49,13 +49,13 @@ int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, in_handler_t h field.num_bits = tap->ir_length; field.out_value = t; buf_set_u32(field.out_value, 0, field.num_bits, new_instr); - field.out_mask = NULL; + field.in_value = NULL; - field.in_check_value = NULL; - field.in_check_mask = NULL; - field.in_handler = handler; - field.in_handler_priv = NULL; - jtag_add_ir_scan(1, &field, -1); + + + field.in_handler = NULL; + + jtag_add_ir_scan(1, &field, TAP_INVALID); } return ERROR_OK; @@ -65,20 +65,20 @@ int mips_ejtag_get_idcode(mips_ejtag_t *ejtag_info, u32 *idcode, in_handler_t ha { scan_field_t field; - jtag_add_end_state(TAP_RTI); + jtag_add_end_state(TAP_IDLE); mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IDCODE, NULL); field.tap = ejtag_info->tap; field.num_bits = 32; field.out_value = NULL; - field.out_mask = NULL; + field.in_value = (void*)idcode; - field.in_check_value = NULL; - field.in_check_mask = NULL; + + field.in_handler = NULL; - field.in_handler_priv = NULL; - jtag_add_dr_scan(1, &field, -1); + + jtag_add_dr_scan(1, &field, TAP_INVALID); if (jtag_execute_queue() != ERROR_OK) { @@ -92,20 +92,20 @@ int mips_ejtag_get_impcode(mips_ejtag_t *ejtag_info, u32 *impcode, in_handler_t { scan_field_t field; - jtag_add_end_state(TAP_RTI); + jtag_add_end_state(TAP_IDLE); mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IMPCODE, NULL); field.tap = ejtag_info->tap; field.num_bits = 32; field.out_value = NULL; - field.out_mask = NULL; + field.in_value = (void*)impcode; - field.in_check_value = NULL; - field.in_check_mask = NULL; + + field.in_handler = NULL; - field.in_handler_priv = NULL; - jtag_add_dr_scan(1, &field, -1); + + jtag_add_dr_scan(1, &field, TAP_INVALID); if (jtag_execute_queue() != ERROR_OK) { @@ -130,13 +130,13 @@ int mips_ejtag_drscan_32(mips_ejtag_t *ejtag_info, u32 *data) field.num_bits = 32; field.out_value = t; buf_set_u32(field.out_value, 0, field.num_bits, *data); - field.out_mask = NULL; + field.in_value = (u8*)data; - field.in_check_value = NULL; - field.in_check_mask = NULL; + + field.in_handler = NULL; - field.in_handler_priv = NULL; - jtag_add_dr_scan(1, &field, -1); + + jtag_add_dr_scan(1, &field, TAP_INVALID); if ((retval = jtag_execute_queue()) != ERROR_OK) { @@ -144,6 +144,8 @@ int mips_ejtag_drscan_32(mips_ejtag_t *ejtag_info, u32 *data) return retval; } + keep_alive(); + return ERROR_OK; } @@ -202,7 +204,7 @@ int mips_ejtag_config_step(mips_ejtag_t *ejtag_info, int enable_step) int mips_ejtag_enter_debug(mips_ejtag_t *ejtag_info) { u32 ejtag_ctrl; - jtag_add_end_state(TAP_RTI); + jtag_add_end_state(TAP_IDLE); mips_ejtag_set_instr(ejtag_info, EJTAG_INST_CONTROL, NULL); /* set debug break bit */