openocd: fix SPDX tag format for files .c
[fw/openocd] / src / jtag / hla / hla_transport.c
index 5a5671db6892fc7b81b0a43100280b4e4814cf82..91228bed2e29a146872743c4e4cc59ee5a986552 100644 (file)
@@ -1,22 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2011 by Mathias Kuester                                 *
  *   Mathias Kuester <kesmtp@freenet.de>                                   *
  *                                                                         *
  *   Copyright (C) 2012 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, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -45,23 +34,37 @@ COMMAND_HANDLER(hl_transport_reset_command)
        return hl_interface_init_reset();
 }
 
-static const struct command_registration
-hl_transport_stlink_subcommand_handlers[] = {
+static const struct command_registration hl_swd_transport_subcommand_handlers[] = {
        {
-        .name = "newtap",
+        .name = "newdap",
         .mode = COMMAND_CONFIG,
         .jim_handler = jim_hl_newtap,
-        .help = "Create a new TAP instance named basename.tap_type, "
-        "and appends it to the scan chain.",
-        .usage = "basename tap_type '-irlen' count "
-        "['-expected_id' number] ",
+        .help = "declare a new SWD DAP",
         },
+       COMMAND_REGISTRATION_DONE
+};
 
+static const struct command_registration hl_swd_transport_command_handlers[] = {
+       {
+        .name = "swd",
+        .mode = COMMAND_ANY,
+        .help = "SWD command group",
+        .usage = "",
+        .chain = hl_swd_transport_subcommand_handlers,
+        },
        COMMAND_REGISTRATION_DONE
 };
 
-static const struct command_registration
-hl_transport_jtag_subcommand_handlers[] = {
+static const struct command_registration hl_transport_jtag_subcommand_handlers[] = {
+       {
+        .name = "newtap",
+        .mode = COMMAND_CONFIG,
+        .jim_handler = jim_hl_newtap,
+        .help = "Create a new TAP instance named basename.tap_type, "
+        "and appends it to the scan chain.",
+        .usage = "basename tap_type '-irlen' count "
+        "['-expected_id' number]",
+        },
        {
         .name = "init",
         .mode = COMMAND_ANY,
@@ -117,18 +120,11 @@ hl_transport_jtag_subcommand_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-static const struct command_registration stlink_transport_command_handlers[] = {
-
-       {
-        .name = "hla",
-        .mode = COMMAND_ANY,
-        .help = "perform hl adapter actions",
-        .usage = "",
-        .chain = hl_transport_stlink_subcommand_handlers,
-        },
+static const struct command_registration hl_jtag_transport_command_handlers[] = {
        {
         .name = "jtag",
         .mode = COMMAND_ANY,
+        .help = "perform jtag tap actions",
         .usage = "",
         .chain = hl_transport_jtag_subcommand_handlers,
         },
@@ -141,11 +137,6 @@ static const struct command_registration stlink_transport_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-static int hl_transport_register_commands(struct command_context *cmd_ctx)
-{
-       return register_commands(cmd_ctx, NULL,
-                                stlink_transport_command_handlers);
-}
 
 static int hl_transport_init(struct command_context *cmd_ctx)
 {
@@ -175,8 +166,6 @@ static int hl_transport_init(struct command_context *cmd_ctx)
                tr = HL_TRANSPORT_SWD;
        else if (strcmp(transport->name, "hla_jtag") == 0)
                tr = HL_TRANSPORT_JTAG;
-       else if (strcmp(transport->name, "stlink_swim") == 0)
-               tr = HL_TRANSPORT_SWIM;
 
        int retval = hl_interface_open(tr);
 
@@ -186,50 +175,49 @@ static int hl_transport_init(struct command_context *cmd_ctx)
        return hl_interface_init_target(t);
 }
 
-static int hl_transport_select(struct command_context *ctx)
+static int hl_jtag_transport_select(struct command_context *cmd_ctx)
 {
-       LOG_DEBUG("hl_transport_select");
-
-       int retval;
+       LOG_DEBUG("hl_jtag_transport_select");
 
        /* NOTE:  interface init must already have been done.
         * That works with only C code ... no Tcl glue required.
         */
 
-       retval = hl_transport_register_commands(ctx);
-
-       if (retval != ERROR_OK)
-               return retval;
+       return register_commands(cmd_ctx, NULL, hl_jtag_transport_command_handlers);
+}
 
-       return ERROR_OK;
+static int hl_swd_transport_select(struct command_context *cmd_ctx)
+{
+       LOG_DEBUG("hl_swd_transport_select");
+       return register_commands(cmd_ctx, NULL, hl_swd_transport_command_handlers);
 }
 
 static struct transport hl_swd_transport = {
        .name = "hla_swd",
-       .select = hl_transport_select,
+       .select = hl_swd_transport_select,
        .init = hl_transport_init,
        .override_target = hl_interface_override_target,
 };
 
 static struct transport hl_jtag_transport = {
        .name = "hla_jtag",
-       .select = hl_transport_select,
+       .select = hl_jtag_transport_select,
        .init = hl_transport_init,
        .override_target = hl_interface_override_target,
 };
 
-static struct transport stlink_swim_transport = {
-       .name = "stlink_swim",
-       .select = hl_transport_select,
-       .init = hl_transport_init,
-};
-
-const char *hl_transports[] = { "hla_swd", "hla_jtag", "stlink_swim", NULL };
+const char *hl_transports[] = { "hla_swd", "hla_jtag", NULL };
 
 static void hl_constructor(void) __attribute__ ((constructor));
 static void hl_constructor(void)
 {
        transport_register(&hl_swd_transport);
        transport_register(&hl_jtag_transport);
-       transport_register(&stlink_swim_transport);
+}
+
+bool transport_is_hla(void)
+{
+       struct transport *t;
+       t = get_current_transport();
+       return t == &hl_swd_transport || t == &hl_jtag_transport;
 }