This is an automated email from Gerrit.

Mathias K?ster ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/393

-- gerrit

commit df207fa39c06305fc4481a339ac046fa913d998d
Author: Mathias K <[email protected]>
Date:   Fri Jan 20 20:37:38 2012 +0100

    swd transport renamed and jtag+swim transport added
    
    This patch add two new transport types, JTAG and SWIM.
    
    Change-Id: I7089d74250330be5c6a01c24066307641df7d11e
    Signed-off-by: Mathias K <[email protected]>

diff --git a/src/jtag/stlink/stlink_transport.c 
b/src/jtag/stlink/stlink_transport.c
index 14e59ec..6943ed2 100644
--- a/src/jtag/stlink/stlink_transport.c
+++ b/src/jtag/stlink/stlink_transport.c
@@ -29,6 +29,7 @@
 #include <helper/time_support.h>
 #include <target/target.h>
 #include <jtag/stlink/stlink_tcl.h>
+#include <jtag/stlink/stlink_transport.h>
 #include <jtag/stlink/stlink_interface.h>
 
 COMMAND_HANDLER(stlink_transport_jtag_command)
@@ -138,13 +139,35 @@ static int stlink_transport_init(struct command_context 
*cmd_ctx)
 {
        LOG_DEBUG("stlink_transport_init");
        struct target *t = get_current_target(cmd_ctx);
+       struct transport *transport;
+       enum eSTLinkTransports tr;
 
        if (!t) {
-               LOG_ERROR("stlink_transport_init: no current target");
+               LOG_ERROR("no current target");
                return ERROR_FAIL;
        }
 
+       transport = get_current_transport();
+
+       if (!transport) {
+               LOG_ERROR("no transport selected");
+               return ERROR_FAIL;
+       }
+
+       LOG_DEBUG("current transport %s", transport->name);
+
+       /* get selected transport as enum */
+       tr = eSTLinkTransportUNKNOWN;
+
+       if (strcmp(transport->name, "stlink_swd") == 0)
+               tr = eSTLinkTransportSWD;
+       else if (strcmp(transport->name, "stlink_jtag") == 0)
+               tr = eSTLinkTransportJTAG;
+       else if (strcmp(transport->name, "stlink_swim") == 0)
+               tr = eSTLinkTransportSWIM;
+
        int retval = stlink_interface_open();
+
        if (retval != ERROR_OK)
                return retval;
 
@@ -169,21 +192,35 @@ static int stlink_transport_select(struct command_context 
*ctx)
        return ERROR_OK;
 }
 
-static struct transport stlink_transport = {
-       .name = "stlink",
+static struct transport stlink_swd_transport = {
+       .name = "stlink_swd",
+       .select = stlink_transport_select,
+       .init = stlink_transport_init,
+};
+
+static struct transport stlink_jtag_transport = {
+       .name = "stlink_jtag",
+       .select = stlink_transport_select,
+       .init = stlink_transport_init,
+};
+
+static struct transport stlink_swim_transport = {
+       .name = "stlink_swim",
        .select = stlink_transport_select,
        .init = stlink_transport_init,
 };
 
-const char *stlink_transports[] = { "stlink", NULL };
+const char *stlink_transports[] = { "stlink_swd", "stlink_jtag", 
"stlink_swim", NULL };
 
 static void stlink_constructor(void) __attribute__ ((constructor));
 static void stlink_constructor(void)
 {
-       transport_register(&stlink_transport);
+       transport_register(&stlink_swd_transport);
+       transport_register(&stlink_jtag_transport);
+       transport_register(&stlink_swim_transport);
 }
 
 bool transport_is_stlink(void)
 {
-       return get_current_transport() == &stlink_transport;
+       return get_current_transport() == &stlink_swd_transport;
 }
diff --git a/src/jtag/stlink/stlink_transport.h 
b/src/jtag/stlink/stlink_transport.h
index 066b194..ecb8c98 100644
--- a/src/jtag/stlink/stlink_transport.h
+++ b/src/jtag/stlink/stlink_transport.h
@@ -20,4 +20,11 @@
 #ifndef _STLINK_TRANSPORT_
 #define _STLINK_TRANSPORT_
 
+enum eSTLinkTransports {
+       eSTLinkTransportUNKNOWN = 0,
+       eSTLinkTransportSWD,
+       eSTLinkTransportJTAG,
+       eSTLinkTransportSWIM
+};
+
 #endif
diff --git a/tcl/target/stm32_stlink.cfg b/tcl/target/stm32_stlink.cfg
index 7af07ce..9a67b99 100644
--- a/tcl/target/stm32_stlink.cfg
+++ b/tcl/target/stm32_stlink.cfg
@@ -23,6 +23,11 @@ if { [info exists CPUTAPID] } {
    set _CPUTAPID 0x1ba01477
 }
 
+#
+# possibles value are stlink_swd or stlink_jtag
+#
+transport select stlink_swd
+
 stlink newtap $_CHIPNAME cpu -expected-id $_CPUTAPID
 
 set _TARGETNAME $_CHIPNAME.cpu

-- 

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to