]> git.sur5r.net Git - openocd/blobdiff - src/target/mips_m4k.c
target: groundwork for "reset-assert" event
[openocd] / src / target / mips_m4k.c
index 94a73280c83e8a7aca65722d87b99b7ad6ff6788..a83217ff957498c016aad30b13315d250c86f929 100644 (file)
 #include "config.h"
 #endif
 
+#include "breakpoints.h"
 #include "mips32.h"
 #include "mips_m4k.h"
 #include "mips32_dmaacc.h"
 #include "target_type.h"
+#include "register.h"
 
 
 /* cli handling */
@@ -39,8 +41,7 @@ int mips_m4k_resume(struct target *target, int current, uint32_t address, int ha
 int mips_m4k_step(struct target *target, int current, uint32_t address, int handle_breakpoints);
 int mips_m4k_read_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
 int mips_m4k_write_memory(struct target *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer);
-int mips_m4k_register_commands(struct command_context_s *cmd_ctx);
-int mips_m4k_init_target(struct command_context_s *cmd_ctx, struct target *target);
+int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target);
 int mips_m4k_target_create(struct target *target, Jim_Interp *interp);
 
 int mips_m4k_examine(struct target *target);
@@ -80,7 +81,6 @@ struct target_type mips_m4k_target =
        .add_watchpoint = mips_m4k_add_watchpoint,
        .remove_watchpoint = mips_m4k_remove_watchpoint,
 
-       .register_commands = mips_m4k_register_commands,
        .target_create = mips_m4k_target_create,
        .init_target = mips_m4k_init_target,
        .examine = mips_m4k_examine,
@@ -307,7 +307,7 @@ int mips_m4k_assert_reset(struct target *target)
        target->state = TARGET_RESET;
        jtag_add_sleep(50000);
 
-       mips32_invalidate_core_regs(target);
+       register_cache_invalidate(mips32->core_cache);
 
        if (target->reset_halt)
        {
@@ -408,7 +408,7 @@ int mips_m4k_resume(struct target *target, int current, uint32_t address, int ha
        target->debug_reason = DBG_REASON_NOTHALTED;
 
        /* registers are now invalid */
-       mips32_invalidate_core_regs(target);
+       register_cache_invalidate(mips32->core_cache);
 
        if (!debug_execution)
        {
@@ -465,7 +465,7 @@ int mips_m4k_step(struct target *target, int current, uint32_t address, int hand
        mips_ejtag_exit_debug(ejtag_info);
 
        /* registers are now invalid */
-       mips32_invalidate_core_regs(target);
+       register_cache_invalidate(mips32->core_cache);
 
        if (breakpoint)
                mips_m4k_set_breakpoint(target, breakpoint);
@@ -511,10 +511,9 @@ int mips_m4k_set_breakpoint(struct target *target, struct breakpoint *breakpoint
                        bp_num++;
                if (bp_num >= mips32->num_inst_bpoints)
                {
-                       LOG_DEBUG("ERROR Can not find free FP Comparator(bpid: %d)",
+                       LOG_ERROR("Can not find free FP Comparator(bpid: %d)",
                                          breakpoint->unique_id );
-                       LOG_WARNING("ERROR Can not find free FP Comparator");
-                       exit(-1);
+                       return ERROR_FAIL;
                }
                breakpoint->set = bp_num + 1;
                comparator_list[bp_num].used = 1;
@@ -722,9 +721,8 @@ int mips_m4k_set_watchpoint(struct target *target, struct watchpoint *watchpoint
                wp_num++;
        if (wp_num >= mips32->num_data_bpoints)
        {
-               LOG_DEBUG("ERROR Can not find free FP Comparator");
-               LOG_WARNING("ERROR Can not find free FP Comparator");
-               exit(-1);
+               LOG_ERROR("Can not find free FP Comparator");
+               return ERROR_FAIL;
        }
 
        if (watchpoint->length != 4)
@@ -902,15 +900,7 @@ int mips_m4k_write_memory(struct target *target, uint32_t address, uint32_t size
                return mips32_dmaacc_write_mem(ejtag_info, address, size, count, (void *)buffer);
 }
 
-int mips_m4k_register_commands(struct command_context_s *cmd_ctx)
-{
-       int retval;
-
-       retval = mips32_register_commands(cmd_ctx);
-       return retval;
-}
-
-int mips_m4k_init_target(struct command_context_s *cmd_ctx, struct target *target)
+int mips_m4k_init_target(struct command_context *cmd_ctx, struct target *target)
 {
        mips32_build_reg_cache(target);