From d3315c4183c34cf48590e9c92ef2b96180271a0a Mon Sep 17 00:00:00 2001 From: zwelch Date: Mon, 29 Jun 2009 20:04:14 +0000 Subject: [PATCH] David Brownell : 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 --- src/target/arm7_9_common.c | 3 ++- src/target/arm926ejs.c | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c index ab9e973776..79d91e7a3a 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 589dfdea41..d9c677ffa8 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 -- 2.30.2