From: David Ung Date: Thu, 23 Apr 2015 21:49:01 +0000 (-0700) Subject: aarch64: Enable resuming with address X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a12c15e21f663550de518595e606633bf82b5d04;p=openocd aarch64: Enable resuming with address Enable resuming to an address. Change-Id: I29c7d3b56f6cbf8b3cd02c93733fc96f45000af3 Signed-off-by: David Ung Signed-off-by: Matthias Welwarsky --- diff --git a/src/target/aarch64.c b/src/target/aarch64.c index 276f4a3a..a2b020bf 100644 --- a/src/target/aarch64.c +++ b/src/target/aarch64.c @@ -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;