target/arm_adi_v5: Fix clear sticky overrun flag during replay of commands
[fw/openocd] / src / target / arm966e.c
index 8462f546e6ebf3762918a7ea7962390f0c856002..b6d3e50e3fef7ae5f345ecb5ab51129a013245f0 100644 (file)
@@ -56,6 +56,16 @@ static int arm966e_target_create(struct target *target, Jim_Interp *interp)
        return arm966e_init_arch_info(target, arm966e, target->tap);
 }
 
+static void arm966e_deinit_target(struct target *target)
+{
+       struct arm *arm = target_to_arm(target);
+       struct arm966e_common *arm966e = target_to_arm966(target);
+
+       arm7_9_deinit(target);
+       arm_free_reg_cache(arm);
+       free(arm966e);
+}
+
 static int arm966e_verify_pointer(struct command_invocation *cmd,
                struct arm966e_common *arm966e)
 {
@@ -189,7 +199,7 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                        retval = arm966e_read_cp15(target, address, &value);
                        if (retval != ERROR_OK) {
                                command_print(CMD,
-                                               "couldn't access reg %" PRIi32,
+                                               "couldn't access reg %" PRIu32,
                                                address);
                                return ERROR_OK;
                        }
@@ -197,7 +207,7 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                        if (retval != ERROR_OK)
                                return retval;
 
-                       command_print(CMD, "%" PRIi32 ": %8.8" PRIx32,
+                       command_print(CMD, "%" PRIu32 ": %8.8" PRIx32,
                                        address, value);
                } else if (CMD_ARGC == 2) {
                        uint32_t value;
@@ -205,11 +215,11 @@ COMMAND_HANDLER(arm966e_handle_cp15_command)
                        retval = arm966e_write_cp15(target, address, value);
                        if (retval != ERROR_OK) {
                                command_print(CMD,
-                                               "couldn't access reg %" PRIi32,
+                                               "couldn't access reg %" PRIu32,
                                                address);
                                return ERROR_OK;
                        }
-                       command_print(CMD, "%" PRIi32 ": %8.8" PRIx32,
+                       command_print(CMD, "%" PRIu32 ": %8.8" PRIx32,
                                        address, value);
                }
        }
@@ -278,6 +288,7 @@ struct target_type arm966e_target = {
        .commands = arm966e_command_handlers,
        .target_create = arm966e_target_create,
        .init_target = arm9tdmi_init_target,
+       .deinit_target = arm966e_deinit_target,
        .examine = arm7_9_examine,
        .check_reset = arm7_9_check_reset,
 };