target/aarch64: Call aarch64_init_debug_access() earlier in aarch64_deassert_reset() 07/4607/2
authorDennis Ostermann <dennis.ostermann@renesas.com>
Wed, 18 Jul 2018 09:21:17 +0000 (11:21 +0200)
committerMatthias Welwarsky <matthias@welwarsky.de>
Fri, 20 Jul 2018 14:14:46 +0000 (15:14 +0100)
On Renesas R-Car, calling 'reset halt' and 'reset init' always made DAP inaccessible. Calling 'reset' and 'halt' seperatly worked fine.
The only differences seems to be the point in time when aarch64_init_debug_access() is called. This patch aligns the behaviour.

Change-Id: I2296c65e48414a7d9846f12a395e5eca315b49ca
Signed-off-by: Dennis Ostermann <dennis.ostermann@renesas.com>
Reviewed-on: http://openocd.zylin.com/4607
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
src/target/aarch64.c

index 14542a6..454de9e 100644 (file)
@@ -1694,17 +1694,19 @@ static int aarch64_deassert_reset(struct target *target)
        if (retval != ERROR_OK)
                return retval;
 
+       retval = aarch64_init_debug_access(target);
+       if (retval != ERROR_OK)
+               return retval;
+
        if (target->reset_halt) {
                if (target->state != TARGET_HALTED) {
                        LOG_WARNING("%s: ran after reset and before halt ...",
                                target_name(target));
                        retval = target_halt(target);
-                       if (retval != ERROR_OK)
-                               return retval;
                }
        }
 
-       return aarch64_init_debug_access(target);
+       return retval;
 }
 
 static int aarch64_write_cpu_memory_slow(struct target *target,