cortex_m, hla_target: do not try asserting SRST if it's not present 05/1405/3
authorPaul Fertser <fercerpav@gmail.com>
Sat, 11 May 2013 11:55:20 +0000 (15:55 +0400)
committerSpencer Oliver <spen@spen-soft.co.uk>
Wed, 29 May 2013 14:39:26 +0000 (14:39 +0000)
This should cover all the cases when RESET_SRST_NO_GATING is set
without RESET_HAS_SRST. This might happen when RESET_SRST_NO_GATING is
automatically set by a target code (and not from tcl).

However, there're some other places (mips_m4k, arm7_9_common) where
adding RESET_SRST_PULLS_TRST would lead to trying to use SRST even if
it's not present. Currently it's impossible for the user to enable
that flag without enabling SRST.

Change-Id: Ib1c6f68feed0b8057d55afd5f260bb22ab332ced
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1405
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/cortex_m.c
src/target/hla_target.c

index 6fba925..9521085 100644 (file)
@@ -989,7 +989,8 @@ static int cortex_m3_assert_reset(struct target *target)
 
        bool srst_asserted = false;
 
-       if (jtag_reset_config & RESET_SRST_NO_GATING) {
+       if ((jtag_reset_config & RESET_HAS_SRST) &&
+           (jtag_reset_config & RESET_SRST_NO_GATING)) {
                adapter_assert_reset();
                srst_asserted = true;
        }
index 65e0568..4564d46 100644 (file)
@@ -428,7 +428,8 @@ static int adapter_assert_reset(struct target *target)
 
        bool srst_asserted = false;
 
-       if (jtag_reset_config & RESET_SRST_NO_GATING) {
+       if ((jtag_reset_config & RESET_HAS_SRST) &&
+           (jtag_reset_config & RESET_SRST_NO_GATING)) {
                jtag_add_reset(0, 1);
                res = adapter->layout->api->assert_srst(adapter->fd, 0);
                srst_asserted = true;