aarch64: don't segfault on reset when target is not examined

Basically port a fix that was already done for the cortex_a target.

Change-Id: I4cf4519159bda03ed611bc0b2e340a5dad2d85fe
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
gitignore-build
Matthias Welwarsky 2016-10-21 16:59:28 +02:00
parent 9d2e8aabb8
commit beece50670
1 changed files with 5 additions and 1 deletions

View File

@ -1316,7 +1316,8 @@ static int aarch64_assert_reset(struct target *target)
}
/* registers are now invalid */
register_cache_invalidate(armv8->arm.core_cache);
if (target_was_examined(target))
register_cache_invalidate(armv8->arm.core_cache);
target->state = TARGET_RESET;
@ -1332,6 +1333,9 @@ static int aarch64_deassert_reset(struct target *target)
/* be certain SRST is off */
jtag_add_reset(0, 0);
if (!target_was_examined(target))
return ERROR_OK;
retval = aarch64_poll(target);
if (retval != ERROR_OK)
return retval;