adi_v5_dapdirect: fix connect under reset
authorAntonio Borneo <borneo.antonio@gmail.com>
Thu, 23 Jan 2020 14:18:33 +0000 (15:18 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Mon, 24 Feb 2020 10:28:46 +0000 (10:28 +0000)
Deassert the reset only if connect under reset is not required;
otherwise, assert the reset.
This fix aligns the behavior of connect under reset in dapdirect
with the behavior in jtag and swd.

Change-Id: I937ef4320b44e51ef6cb0e349e12348dbfbe4abb
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5415
Tested-by: jenkins
src/target/adi_v5_dapdirect.c

index f1201519865a16a323c509964d336946b8451efc..c0deee165f5fae4a8f39c9cc962010d724a6e4f8 100644 (file)
@@ -179,9 +179,18 @@ static int dapdirect_swd_select(struct command_context *ctx)
 
 static int dapdirect_init(struct command_context *ctx)
 {
+       enum reset_types jtag_reset_config = jtag_get_reset_config();
+
        LOG_DEBUG("dapdirect_init()");
 
-       adapter_deassert_reset();
+       if (jtag_reset_config & RESET_CNCT_UNDER_SRST) {
+               if (jtag_reset_config & RESET_SRST_NO_GATING)
+                       adapter_assert_reset();
+               else
+                       LOG_WARNING("\'srst_nogate\' reset_config option is required");
+       } else
+               adapter_deassert_reset();
+
        return ERROR_OK;
 }