X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Farm966e.c;h=b6d3e50e3fef7ae5f345ecb5ab51129a013245f0;hb=0f11f951e7774c54953f3f06916dcb62ac9b086d;hp=c9d7f01aa4e13f9af42af5e6882535a4160ebaf0;hpb=5c941edc7b0d6e0bed596293d81867453d1462e9;p=openocd.git diff --git a/src/target/arm966e.c b/src/target/arm966e.c index c9d7f01aa4..b6d3e50e3f 100644 --- a/src/target/arm966e.c +++ b/src/target/arm966e.c @@ -56,11 +56,21 @@ static int arm966e_target_create(struct target *target, Jim_Interp *interp) return arm966e_init_arch_info(target, arm966e, target->tap); } -static int arm966e_verify_pointer(struct command_context *cmd_ctx, +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) { if (arm966e->common_magic != ARM966E_COMMON_MAGIC) { - command_print(cmd_ctx, "target is not an ARM966"); + command_print(cmd, "target is not an ARM966"); return ERROR_TARGET_INVALID; } return ERROR_OK; @@ -170,12 +180,12 @@ COMMAND_HANDLER(arm966e_handle_cp15_command) struct target *target = get_current_target(CMD_CTX); struct arm966e_common *arm966e = target_to_arm966(target); - retval = arm966e_verify_pointer(CMD_CTX, arm966e); + retval = arm966e_verify_pointer(CMD, arm966e); if (retval != ERROR_OK) return retval; if (target->state != TARGET_HALTED) { - command_print(CMD_CTX, "target must be stopped for \"%s\" command", CMD_NAME); + command_print(CMD, "target must be stopped for \"%s\" command", CMD_NAME); return ERROR_OK; } @@ -188,8 +198,8 @@ COMMAND_HANDLER(arm966e_handle_cp15_command) uint32_t value; retval = arm966e_read_cp15(target, address, &value); if (retval != ERROR_OK) { - command_print(CMD_CTX, - "couldn't access reg %" PRIi32, + command_print(CMD, + "couldn't access reg %" PRIu32, address); return ERROR_OK; } @@ -197,19 +207,19 @@ COMMAND_HANDLER(arm966e_handle_cp15_command) if (retval != ERROR_OK) return retval; - command_print(CMD_CTX, "%" PRIi32 ": %8.8" PRIx32, + command_print(CMD, "%" PRIu32 ": %8.8" PRIx32, address, value); } else if (CMD_ARGC == 2) { uint32_t value; COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], value); retval = arm966e_write_cp15(target, address, value); if (retval != ERROR_OK) { - command_print(CMD_CTX, - "couldn't access reg %" PRIi32, + command_print(CMD, + "couldn't access reg %" PRIu32, address); return ERROR_OK; } - command_print(CMD_CTX, "%" 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, };