xscale: mark xscale registers invalid on debug entry
commite1c6f6783d68f0dcc766b3e6317348e3838a3856
authorMike Dunn <mikedunn@newsguy.com>
Thu, 9 Sep 2010 02:13:14 +0000 (8 19:13 -0700)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Thu, 9 Sep 2010 07:22:11 +0000 (9 09:22 +0200)
treeeebbc81e4cfa08b8fe17f5d626682795f5e97b19
parenta40f12d62693042415c46bcc95b0bd86d9eaea81
xscale: mark xscale registers invalid on debug entry

Hi everyone,

This simple patch fixes a problem I noticed on the xscale where incorrect values
are sometimes reported by the reg command.  The problem can occur when
requesting the value of registers in the xscale-specific register cache.  With a
couple of exceptions, none of the registers in the xscale register cache are
automatically retrieved on debug entry.  This is probably fine, as they are
unlikely to be needed on a regular basis during a typical debug session, and
they can be retrieved when explicitly requested by name using the reg command.
The problem is that once this is done, the register remains marked as valid for
the remainder of the OpenOCD session, and the reg command will henceforth always
report the same value because it is obtained from the cache and is never again
retrieved from the debug handler on the target.

The fix is to mark all registers in the xscale register cache as invalid on
debug entry (before the two exceptions are retrieved), thus forcing retrieval
(when requested) from the target across resumptions in execution, and avoiding
the reporting of stale values.

Small addition change by Øyvind: change 'i' to unsigned to fix compiler
warning for xscale_debug_entry() fn.

Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
src/target/xscale.c