aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/core.c
diff options
context:
space:
mode:
authorSamuel Obuch <sobuch@codasip.com>2020-08-11 17:37:01 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2020-09-05 16:48:08 +0100
commit3ac010bb9f1065c0d2cba9ac2c473878d8a6eee6 (patch)
treecdedc9f5f35856661b47877953c7399b8f8d8c1e /src/jtag/core.c
parent764b25c81481225d425ff711b9ba11fca1d91b31 (diff)
downloadriscv-openocd-3ac010bb9f1065c0d2cba9ac2c473878d8a6eee6.zip
riscv-openocd-3ac010bb9f1065c0d2cba9ac2c473878d8a6eee6.tar.gz
riscv-openocd-3ac010bb9f1065c0d2cba9ac2c473878d8a6eee6.tar.bz2
Fix debug prints when loading to flash
While loading to flash with debug level at least 3, OpenOCD tries to print the whole loaded bitstream. This will be very-very-slow due to implementation of conversion from buffer to string. * fix condition on selected debug level in jtag/core.c * replace slow buf_to_str function from helper/binarybuffer.c with faster but_to_hex_str function Change-Id: I3dc01d5846941ca80736f2ed12e3a54114d2b6dd Signed-off-by: Samuel Obuch <sobuch@codasip.com> Reviewed-on: http://openocd.zylin.com/5800 Tested-by: jenkins Reviewed-by: Jan Matyas <matyas@codasip.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src/jtag/core.c')
-rw-r--r--src/jtag/core.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c
index 1d424b2..b8d0b74 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -891,8 +891,8 @@ static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
/* NOTE: we've lost diagnostic context here -- 'which tap' */
- captured_str = buf_to_str(captured, bits, 16);
- in_check_value_str = buf_to_str(in_check_value, bits, 16);
+ captured_str = buf_to_hex_str(captured, bits);
+ in_check_value_str = buf_to_hex_str(in_check_value, bits);
LOG_WARNING("Bad value '%s' captured during DR or IR scan:",
captured_str);
@@ -904,7 +904,7 @@ static int jtag_check_value_inner(uint8_t *captured, uint8_t *in_check_value,
if (in_check_mask) {
char *in_check_mask_str;
- in_check_mask_str = buf_to_str(in_check_mask, bits, 16);
+ in_check_mask_str = buf_to_hex_str(in_check_mask, bits);
LOG_WARNING(" check_mask: 0x%s", in_check_mask_str);
free(in_check_mask_str);
}
@@ -960,7 +960,7 @@ int default_interface_jtag_execute_queue(void)
* jtag/Makefile.am if MINIDRIVER_DUMMY || !MINIDRIVER, but those variables
* aren't accessible here. */
struct jtag_command *cmd = jtag_command_queue;
- while (debug_level >= LOG_LVL_DEBUG && cmd) {
+ while (debug_level >= LOG_LVL_DEBUG_IO && cmd) {
switch (cmd->type) {
case JTAG_SCAN:
LOG_DEBUG_IO("JTAG %s SCAN to %s",
@@ -969,12 +969,12 @@ int default_interface_jtag_execute_queue(void)
for (int i = 0; i < cmd->cmd.scan->num_fields; i++) {
struct scan_field *field = cmd->cmd.scan->fields + i;
if (field->out_value) {
- char *str = buf_to_str(field->out_value, field->num_bits, 16);
+ char *str = buf_to_hex_str(field->out_value, field->num_bits);
LOG_DEBUG_IO(" %db out: %s", field->num_bits, str);
free(str);
}
if (field->in_value) {
- char *str = buf_to_str(field->in_value, field->num_bits, 16);
+ char *str = buf_to_hex_str(field->in_value, field->num_bits);
LOG_DEBUG_IO(" %db in: %s", field->num_bits, str);
free(str);
}
@@ -1436,7 +1436,7 @@ static int jtag_validate_ircapture(void)
/* verify the '11' sentinel we wrote is returned at the end */
val = buf_get_u64(ir_test, chain_pos, 2);
if (val != 0x3) {
- char *cbuf = buf_to_str(ir_test, total_ir_length, 16);
+ char *cbuf = buf_to_hex_str(ir_test, total_ir_length);
LOG_ERROR("IR capture error at bit %d, saw 0x%s not 0x...3",
chain_pos, cbuf);