aarch64: Enable resuming with address 46/2746/11
authorDavid Ung <davidu@nvidia.com>
Thu, 23 Apr 2015 21:49:01 +0000 (14:49 -0700)
committerMatthias Welwarsky <matthias.welwarsky@sysgo.com>
Fri, 10 Feb 2017 12:58:05 +0000 (13:58 +0100)
Enable resuming to an address.

Change-Id: I29c7d3b56f6cbf8b3cd02c93733fc96f45000af3
Signed-off-by: David Ung <david.ung.42@gmail.com>
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
src/target/aarch64.c

index 276f4a3ab6beb9e68193afb559bcde97854bccd4..a2b020bfd1e87427de569c13c9110e76db51c605 100644 (file)
@@ -1023,12 +1023,7 @@ static int aarch64_resume(struct target *target, int current,
        target_addr_t address, int handle_breakpoints, int debug_execution)
 {
        int retval = 0;
-       uint64_t resume_addr;
-
-       if (address) {
-               LOG_DEBUG("resuming with custom address not supported");
-               return ERROR_FAIL;
-       }
+       uint64_t addr = address;
 
        /* dummy resume for smp toggle in order to reduce gdb impact  */
        if ((target->smp) && (target->gdb_service->core[1] != -1)) {
@@ -1039,7 +1034,8 @@ static int aarch64_resume(struct target *target, int current,
                target_call_event_callbacks(target, TARGET_EVENT_RESUMED);
                return 0;
        }
-       aarch64_internal_restore(target, current, &resume_addr, handle_breakpoints, debug_execution);
+       aarch64_internal_restore(target, current, &addr, handle_breakpoints,
+                                debug_execution);
        if (target->smp) {
                target->gdb_service->core[0] = -1;
                retval = aarch64_restore_smp(target, handle_breakpoints);
@@ -1051,11 +1047,11 @@ static int aarch64_resume(struct target *target, int current,
        if (!debug_execution) {
                target->state = TARGET_RUNNING;
                target_call_event_callbacks(target, TARGET_EVENT_RESUMED);
-               LOG_DEBUG("target resumed at 0x%" PRIx64, resume_addr);
+               LOG_DEBUG("target resumed at 0x%" PRIu64, addr);
        } else {
                target->state = TARGET_DEBUG_RUNNING;
                target_call_event_callbacks(target, TARGET_EVENT_DEBUG_RESUMED);
-               LOG_DEBUG("target debug resumed at 0x%" PRIx64, resume_addr);
+               LOG_DEBUG("target debug resumed at 0x%" PRIu64, addr);
        }
 
        return ERROR_OK;

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)