openocd: fix SPDX tag format for files .c
[fw/openocd] / src / target / arm966e.c
index 6a96ab18f2d6fab0f4c73e5ea71400be9f23a8e7..3e601720362b96c68642ad75a8b26808e0076b7c 100644 (file)
@@ -1,24 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
  *   Copyright (C) 2008 by Spencer Oliver                                  *
  *   spen@spen-soft.co.uk                                                  *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -58,11 +45,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;
@@ -87,7 +84,7 @@ static int arm966e_read_cp15(struct target *target, int reg_addr, uint32_t *valu
        retval = arm_jtag_scann(jtag_info, 0xf, TAP_IDLE);
        if (retval != ERROR_OK)
                return retval;
-       retval = arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL, TAP_IDLE);
+       retval = arm_jtag_set_instr(jtag_info->tap, jtag_info->intest_instr, NULL, TAP_IDLE);
        if (retval != ERROR_OK)
                return retval;
 
@@ -141,7 +138,7 @@ int arm966e_write_cp15(struct target *target, int reg_addr, uint32_t value)
        retval = arm_jtag_scann(jtag_info, 0xf, TAP_IDLE);
        if (retval != ERROR_OK)
                return retval;
-       retval = arm_jtag_set_instr(jtag_info, jtag_info->intest_instr, NULL, TAP_IDLE);
+       retval = arm_jtag_set_instr(jtag_info->tap, jtag_info->intest_instr, NULL, TAP_IDLE);
        if (retval != ERROR_OK)
                return retval;
 
@@ -172,12 +169,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;
        }
 
@@ -190,8 +187,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;
                        }
@@ -199,19 +196,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);
                }
        }
@@ -261,6 +258,7 @@ struct target_type arm966e_target = {
        .deassert_reset = arm7_9_deassert_reset,
        .soft_reset_halt = arm7_9_soft_reset_halt,
 
+       .get_gdb_arch = arm_get_gdb_arch,
        .get_gdb_reg_list = arm_get_gdb_reg_list,
 
        .read_memory = arm7_9_read_memory,
@@ -279,6 +277,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,
 };