summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-29 20:04:14 +0000
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-29 20:04:14 +0000
commitd3315c4183c34cf48590e9c92ef2b96180271a0a (patch)
treeb7299957d2647c82e6201d762a80790c3771eb10 /src
parent95da247b40d13600c37588d6be0ef8b3cc9abf2f (diff)
downloadopenocd+libswd-d3315c4183c34cf48590e9c92ef2b96180271a0a.tar.gz
openocd+libswd-d3315c4183c34cf48590e9c92ef2b96180271a0a.tar.bz2
openocd+libswd-d3315c4183c34cf48590e9c92ef2b96180271a0a.tar.xz
openocd+libswd-d3315c4183c34cf48590e9c92ef2b96180271a0a.zip
David Brownell <david-b@pacbell.net>:
Remove some bogus warnings during server startup for ARM926ejs targets that were already halted for debug ... e.g. started up a freshly built instance. git-svn-id: svn://svn.berlios.de/openocd/trunk@2417 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src')
-rw-r--r--src/target/arm7_9_common.c3
-rw-r--r--src/target/arm926ejs.c18
2 files changed, 19 insertions, 2 deletions
diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index ab9e9737..79d91e7a 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -913,8 +913,9 @@ int arm7_9_poll(target_t *target)
/* LOG_DEBUG("DBGACK set, dbg_state->value: 0x%x", buf_get_u32(dbg_stat->value, 0, 32));*/
if (target->state == TARGET_UNKNOWN)
{
+ /* Starting OpenOCD with target in debug-halt */
target->state = TARGET_RUNNING;
- LOG_WARNING("DBGACK set while target was in unknown state. Reset or initialize target.");
+ LOG_DEBUG("DBGACK already set during server startup.");
}
if ((target->state == TARGET_RUNNING) || (target->state == TARGET_RESET))
{
diff --git a/src/target/arm926ejs.c b/src/target/arm926ejs.c
index 589dfdea..d9c677ff 100644
--- a/src/target/arm926ejs.c
+++ b/src/target/arm926ejs.c
@@ -262,10 +262,12 @@ int arm926ejs_examine_debug_reason(target_t *target)
if ((retval = jtag_execute_queue()) != ERROR_OK)
return retval;
+ /* Method-Of-Entry (MOE) field */
debug_reason = buf_get_u32(dbg_stat->value, 6, 4);
switch (debug_reason)
{
+ /* case 0: no debug entry */
case 1:
LOG_DEBUG("breakpoint from EICE unit 0");
target->debug_reason = DBG_REASON_BREAKPOINT;
@@ -307,7 +309,21 @@ int arm926ejs_examine_debug_reason(target_t *target)
target->debug_reason = DBG_REASON_DBGRQ;
break;
case 11:
- LOG_ERROR("BUG: debug re-entry from system speed access shouldn't be handled here");
+ LOG_DEBUG("debug re-entry from system speed access");
+ /* This is normal when connecting to something that's
+ * already halted, or in some related code paths, but
+ * otherwise is surprising (and presumably wrong).
+ */
+ switch (target->debug_reason) {
+ case DBG_REASON_DBGRQ:
+ break;
+ default:
+ LOG_ERROR("unexpected -- debug re-entry");
+ /* FALLTHROUGH */
+ case DBG_REASON_UNDEFINED:
+ target->debug_reason = DBG_REASON_DBGRQ;
+ break;
+ }
break;
case 12:
/* FIX!!!! here be dragons!!! We need to fail here so