This is an automated email from Gerrit. Alamy Liu ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/3247
-- gerrit commit da33db1a567fd3a613f09572323ee114d47c6e1f Author: Alamy Liu <[email protected]> Date: Fri Aug 7 16:20:58 2015 -0700 DBG: Debugging messages Change-Id: Ia14c5994ddfc0b48527afb498d30a67636f23137 Signed-off-by: Alamy Liu <[email protected]> diff --git a/src/jtag/core.c b/src/jtag/core.c index fd4370f..a5b12e0 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -222,6 +222,9 @@ void jtag_tap_add(struct jtag_tap *t) } *tap = t; t->abs_chain_position = jtag_num_taps; + +LOG_DEBUG("Alamy: tap at %p, count=%d, enabled=%d", + t, t->abs_chain_position, t->enabled); } /* returns a pointer to the n-th device in the scan chain */ @@ -359,7 +362,9 @@ void jtag_add_ir_scan_noverify(struct jtag_tap *active, const struct scan_field { jtag_prelude(state); +// jtag_dump_queue(__func__, __LINE__); --- after int retval = interface_jtag_add_ir_scan(active, in_fields, state); +// jtag_dump_queue(__func__, __LINE__); --- before jtag_set_error(retval); } @@ -424,8 +429,11 @@ static void jtag_add_scan_check(struct jtag_tap *active, void (*jtag_add_scan)( tap_state_t state), int in_num_fields, struct scan_field *in_fields, tap_state_t state) { +// jtag_dump_queue(__func__, __LINE__); --- after +//LOG_DEBUG("in_num_fields = %d", in_num_fields); jtag_add_scan(active, in_num_fields, in_fields, state); +// jtag_dump_queue(__func__, __LINE__); --- before for (int i = 0; i < in_num_fields; i++) { if ((in_fields[i].check_value != NULL) && (in_fields[i].in_value != NULL)) { /* this is synchronous for a minidriver */ @@ -866,6 +874,12 @@ int jtag_execute_queue(void) return jtag_error_clear(); } +extern void bitbang_dump_queue(const char *func, int line); +void jtag_dump_queue(const char *func, int line) +{ + bitbang_dump_queue(func, line); +} + static int jtag_reset_callback(enum jtag_event event, void *priv) { struct jtag_tap *tap = priv; @@ -1077,6 +1091,7 @@ static int jtag_examine_chain(void) assert(bit_count < max_taps * 32); uint32_t idcode = buf_get_u32(idcode_buffer, bit_count, 32); + LOG_DEBUG("tap %d/%d at %p, idcode=0x%08x", i, max_taps, tap, idcode); /* No predefined TAP? Auto-probe. */ if (tap == NULL) { /* Is there another TAP? */ @@ -1369,12 +1384,15 @@ int adapter_init(struct command_context *cmd_ctx) int requested_khz = jtag_get_speed_khz(); int actual_khz = requested_khz; int jtag_speed_var = 0; +LOG_DEBUG("req_khz=%d, act_khz=%d, jtag_spd=%d", requested_khz, actual_khz, jtag_speed_var); retval = jtag_get_speed(&jtag_speed_var); if (retval != ERROR_OK) return retval; +LOG_DEBUG("req_khz=%d, act_khz=%d, jtag_spd=%d", requested_khz, actual_khz, jtag_speed_var); retval = jtag->speed(jtag_speed_var); if (retval != ERROR_OK) return retval; +LOG_DEBUG("req_khz=%d, act_khz=%d, jtag_spd=%d", requested_khz, actual_khz, jtag_speed_var); retval = jtag_get_speed_readable(&actual_khz); if (ERROR_OK != retval) LOG_INFO("adapter-specific clock speed value %d", jtag_speed_var); @@ -1389,6 +1407,7 @@ int adapter_init(struct command_context *cmd_ctx) } else LOG_INFO("RCLK (adaptive clock speed)"); +LOG_DEBUG("req_khz=%d, act_khz=%d, jtag_spd=%d", requested_khz, actual_khz, jtag_speed_var); return ERROR_OK; } @@ -1597,10 +1616,11 @@ unsigned jtag_get_speed_khz(void) static int adapter_khz_to_speed(unsigned khz, int *speed) { - LOG_DEBUG("convert khz to interface specific speed value"); + LOG_DEBUG("convert khz (%d) to interface specific speed value", khz); speed_khz = khz; + LOG_DEBUG("jtag interface %s set up", (jtag ? "has" : "not")); if (jtag != NULL) { - LOG_DEBUG("have interface set up"); +// LOG_DEBUG("have interface set up"); int speed_div1; int retval = jtag->khz(jtag_get_speed_khz(), &speed_div1); if (ERROR_OK != retval) @@ -1630,7 +1650,7 @@ static int jtag_set_speed(int speed) int jtag_config_khz(unsigned khz) { - LOG_DEBUG("handle jtag khz"); + LOG_DEBUG("handle adapter khz (%d)", khz); clock_mode = CLOCK_MODE_KHZ; int speed = 0; int retval = adapter_khz_to_speed(khz, &speed); @@ -1639,7 +1659,7 @@ int jtag_config_khz(unsigned khz) int jtag_config_rclk(unsigned fallback_speed_khz) { - LOG_DEBUG("handle jtag rclk"); + LOG_DEBUG("handle jtag rclk (%d)", fallback_speed_khz); clock_mode = CLOCK_MODE_RCLK; rclk_fallback_speed_khz = fallback_speed_khz; int speed = 0; @@ -1728,6 +1748,7 @@ int jtag_get_srst(void) void jtag_set_nsrst_delay(unsigned delay) { + LOG_DEBUG("adapter_nsrst_delay = %d", delay); adapter_nsrst_delay = delay; } unsigned jtag_get_nsrst_delay(void) @@ -1736,6 +1757,7 @@ unsigned jtag_get_nsrst_delay(void) } void jtag_set_ntrst_delay(unsigned delay) { + LOG_DEBUG("jtag_ntrst_delay = %d", delay); jtag_ntrst_delay = delay; } unsigned jtag_get_ntrst_delay(void) diff --git a/src/jtag/drivers/bitbang.c b/src/jtag/drivers/bitbang.c index 1a0fa1c..56eb9b6 100644 --- a/src/jtag/drivers/bitbang.c +++ b/src/jtag/drivers/bitbang.c @@ -243,6 +243,61 @@ static void bitbang_scan(bool ir_scan, enum scan_type type, uint8_t *buffer, int } } +void bitbang_dump_queue(const char *func, int line) +{ + struct jtag_command *cmd = jtag_command_queue; /* currently processed command */ + + LOG_DEBUG("----- command queue (begin) %s:%d -----", func, line); + while (cmd) { + switch (cmd->type) { + case JTAG_SCAN: { + struct scan_command *scmd; + + scmd = cmd->cmd.scan; + + LOG_DEBUG("JTAG_SCAN: %s scan end in %s, fields=%d", + (scmd->ir_scan) ? "IR" : "DR", + tap_state_name(scmd->end_state), + scmd->num_fields); +#if 0 + for (int i = 0; i < scmd->num_fields; i++) { +// int cvrt_bits = (scmd->fields[i].num_bits > DEBUG_JTAG_IOZ) +// ? DEBUG_JTAG_IOZ : scmd->fields[i].num_bits; +// char *char_buf = buf_to_str(scmd->fields[i].out_value, +// cvrt_bits, 16); +// LOG_DEBUG("fields[%i].out_value[%i]: 0x%x", i, +// scmd->fields[i].num_bits, +// *(scmd->fields[i].out_value)); + uint8_t *pv = (uint8_t *)(scmd->fields[i].out_value); + LOG_DEBUG("fields[%d].out_value = 0x%x", i, *pv); +// free(char_buf); + } +#endif + break; + } + case JTAG_TLR_RESET: + LOG_DEBUG("JTAG_TLR_RESET"); break; + case JTAG_RUNTEST: + LOG_DEBUG("JTAG_RUNTEST"); break; + case JTAG_RESET: + LOG_DEBUG("JTAG_RESET"); break; + case JTAG_PATHMOVE: + LOG_DEBUG("JTAG_PATHMOVE"); break; + case JTAG_SLEEP: + LOG_DEBUG("JTAG_SLEEP"); break; + case JTAG_STABLECLOCKS: + LOG_DEBUG("JTAG_STABLECLOCKS"); break; + case JTAG_TMS: + LOG_DEBUG("JTAG_TMS"); break; + default: + LOG_DEBUG("JTAG_xxx = %d", cmd->type); break; + } /* end of switch(cmd->type) */ + + cmd = cmd->next; + } /* end of while(cmd) */ + LOG_DEBUG("----- command queue (end) -----"); +} + int bitbang_execute_queue(void) { struct jtag_command *cmd = jtag_command_queue; /* currently processed command */ diff --git a/src/jtag/drivers/driver.c b/src/jtag/drivers/driver.c index 75ec115..a1881d8 100644 --- a/src/jtag/drivers/driver.c +++ b/src/jtag/drivers/driver.c @@ -98,12 +98,13 @@ int interface_jtag_add_ir_scan(struct jtag_tap *active, for (struct jtag_tap *tap = jtag_tap_next_enabled(NULL); tap != NULL; tap = jtag_tap_next_enabled(tap)) { /* search the input field list for fields for the current TAP */ - +//LOG_DEBUG("tap at %p is %s", tap, (tap == active) ? "active" : "bypass"); if (tap == active) { /* if TAP is listed in input fields, copy the value */ tap->bypass = 0; cmd_queue_scan_field_clone(field, in_fields); +//LOG_DEBUG("out_value = 0x%x -> 0x%x", *(in_fields->out_value), *(field->out_value)); } else { /* if a TAP isn't listed in input fields, set it to BYPASS */ @@ -113,7 +114,6 @@ int interface_jtag_add_ir_scan(struct jtag_tap *active, field->out_value = buf_set_ones(cmd_queue_alloc(DIV_ROUND_UP(tap->ir_length, 8)), tap->ir_length); field->in_value = NULL; /* do not collect input for tap's in bypass */ } - /* update device information */ buf_cpy(field->out_value, tap->cur_instr, tap->ir_length); diff --git a/src/target/target.c b/src/target/target.c index 6df8d8b..6256b68 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -723,6 +723,7 @@ int target_examine(void) int retval = ERROR_OK; struct target *target; +//LOG_DEBUG("Alamy"); for (target = all_targets; target; target = target->next) { /* defer examination, but don't skip it */ if (!target->tap->enabled) { -- ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
