jtag: enable connect under reset
Currently if the target supports srst_nogate we wait until target assert_reset until we get a chance to assert the srst. However sometimes we will not get this far if the target has already failed the jtag_examine_chain. This has been tested on targets that support this behaviour (STM32 and STR9). Change-Id: Ibcf7584b137b472f31ba6ddd5cd99d848c5508d1 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/971 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
This commit is contained in:
parent
c91dbd41ba
commit
67a848424b
|
@ -1549,7 +1549,17 @@ int jtag_init_reset(struct command_context *cmd_ctx)
|
|||
if ((jtag_reset_config & RESET_SRST_PULLS_TRST) == 0)
|
||||
jtag_add_reset(0, 1);
|
||||
}
|
||||
jtag_add_reset(0, 0);
|
||||
|
||||
/* some targets enable us to connect with srst asserted */
|
||||
if (jtag_reset_config & RESET_CNCT_UNDER_SRST) {
|
||||
if (jtag_reset_config & RESET_SRST_NO_GATING)
|
||||
jtag_add_reset(0, 1);
|
||||
else {
|
||||
LOG_WARNING("\'srst_nogate\' reset_config option is required");
|
||||
jtag_add_reset(0, 0);
|
||||
}
|
||||
} else
|
||||
jtag_add_reset(0, 0);
|
||||
retval = jtag_execute_queue();
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
|
@ -1572,6 +1582,14 @@ int jtag_init(struct command_context *cmd_ctx)
|
|||
|
||||
/* guard against oddball hardware: force resets to be inactive */
|
||||
jtag_add_reset(0, 0);
|
||||
|
||||
/* some targets enable us to connect with srst asserted */
|
||||
if (jtag_reset_config & RESET_CNCT_UNDER_SRST) {
|
||||
if (jtag_reset_config & RESET_SRST_NO_GATING)
|
||||
jtag_add_reset(0, 1);
|
||||
else
|
||||
LOG_WARNING("\'srst_nogate\' reset_config option is required");
|
||||
}
|
||||
retval = jtag_execute_queue();
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
|
|
Loading…
Reference in New Issue