X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fjtag%2Fadapter.c;h=5d29bd795fc213d9b4c78f355f0f92d9592db29e;hb=refs%2Fchanges%2F76%2F976%2F3;hp=e87090c0b43a9a72144d460848695b311071aa5d;hpb=38f8e5eefac748a30a4bf5e9d7a7313c8ae0e4e9;p=openocd.git diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c index e87090c0b4..5d29bd795f 100644 --- a/src/jtag/adapter.c +++ b/src/jtag/adapter.c @@ -289,6 +289,22 @@ COMMAND_HANDLER(handle_reset_config_command) if (m) goto next; + /* connect_type - only valid when srst_nogate */ + m = RESET_CNCT_UNDER_SRST; + if (strcmp(*CMD_ARGV, "connect_assert_srst") == 0) + tmp |= RESET_CNCT_UNDER_SRST; + else if (strcmp(*CMD_ARGV, "connect_deassert_srst") == 0) + /* connect normally - default */; + else + m = 0; + if (mask & m) { + LOG_ERROR("extra reset_config %s spec (%s)", + "connect_type", *CMD_ARGV); + return ERROR_COMMAND_SYNTAX_ERROR; + } + if (m) + goto next; + /* caller provided nonsense; fail */ LOG_ERROR("unknown reset_config flag (%s)", *CMD_ARGV); return ERROR_COMMAND_SYNTAX_ERROR; @@ -311,11 +327,10 @@ next: } else new_cfg = jtag_get_reset_config(); - /* * Display the (now-)current reset mode */ - char *modes[5]; + char *modes[6]; /* minimal JTAG has neither SRST nor TRST (so that's the default) */ switch (new_cfg & (RESET_HAS_TRST | RESET_HAS_SRST)) { @@ -369,14 +384,20 @@ next: modes[4] = " srst_push_pull"; else modes[4] = " srst_open_drain"; + + if (new_cfg & RESET_CNCT_UNDER_SRST) + modes[5] = " connect_assert_srst"; + else + modes[5] = " connect_deassert_srst"; } else { modes[2] = ""; modes[4] = ""; + modes[5] = ""; } - command_print(CMD_CTX, "%s %s%s%s%s", + command_print(CMD_CTX, "%s %s%s%s%s%s", modes[0], modes[1], - modes[2], modes[3], modes[4]); + modes[2], modes[3], modes[4], modes[5]); return ERROR_OK; } @@ -409,8 +430,6 @@ COMMAND_HANDLER(handle_adapter_nsrst_assert_width_command) return ERROR_OK; } - - COMMAND_HANDLER(handle_adapter_khz_command) { if (CMD_ARGC > 1) @@ -432,9 +451,9 @@ COMMAND_HANDLER(handle_adapter_khz_command) return retval; if (cur_speed) - command_print(CMD_CTX, "%d kHz", cur_speed); + command_print(CMD_CTX, "adapter speed: %d kHz", cur_speed); else - command_print(CMD_CTX, "RCLK - adaptive"); + command_print(CMD_CTX, "adapter speed: RCLK - adaptive"); return retval; }