target: cortex_a: fix regs invalidation when -defer-examine
commitc72afedce794a7251fd9c822e3bfc89f870b9fc1
authorAntonio Borneo <borneo.antonio@gmail.com>
Sat, 13 Apr 2024 16:54:12 +0000 (13 18:54 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 4 May 2024 08:35:00 +0000 (4 08:35 +0000)
treea44d38701230033e9e96d8fe4273cc9a22c2683d
parent42e31d75b443e369597669b5ff7901de902ad35e
target: cortex_a: fix regs invalidation when -defer-examine

The code for cortex_a allocates the register cache during the very
first examine of the target.
To prevent a segmentation fault in assert_reset(), the call to
register_cache_invalidate() is guarded by target_was_examined().

But for targets with -defer-examine, the target is set as not
examined in handle_target_reset() just before entering in
assert_reset().

This causes registers to not be invalidated while reset a target
examined but with -defer-examine.

Change the condition and invalidate the register cache if it has
been already allocated.

Change-Id: I81ae782ddce07431d5f2c1bea3e2f19dfcd6d1ce
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8215
Tested-by: jenkins
src/target/cortex_a.c