- Improves error handling upon GDB connect
[fw/openocd] / src / target / arm926ejs.c
index 87603bca89a514aa28d2a6365b2ca9c41bda0d4a..1b3a17b0a976d0141d32908aebc0e7cd0e4ae42c 100644 (file)
@@ -337,9 +337,11 @@ int arm926ejs_examine_debug_reason(target_t *target)
                default:
                        ERROR("BUG: unknown debug reason: 0x%x", debug_reason);
                        target->debug_reason = DBG_REASON_DBGRQ;
+                       retval = ERROR_TARGET_FAILURE;
+                       break;
        }
        
-       return ERROR_OK;
+       return retval;
 }
 
 u32 arm926ejs_get_ttb(target_t *target)
@@ -576,10 +578,7 @@ int arm926ejs_soft_reset_halt(struct target_s *target)
        arm926ejs_common_t *arm926ejs = arm9tdmi->arch_info;
        reg_t *dbg_stat = &arm7_9->eice_cache->reg_list[EICE_DBG_STAT];
        
-       if (target->state == TARGET_RUNNING)
-       {
-               target->type->halt(target);
-       }
+       target->type->halt(target);
        
        while (buf_get_u32(dbg_stat->value, EICE_DBG_STATUS_DBGACK, 1) == 0)
        {