This is an automated email from Gerrit.

Paul Fertser (fercer...@gmail.com) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/2183

-- gerrit

commit f4535d13a944d39d447f7ee20949713e31729466
Author: Paul Fertser <fercer...@gmail.com>
Date:   Fri Jun 20 13:31:25 2014 +0400

    jtag/drivers/ftdi: require defining SWD_EN signal for SWD mode
    
    Use a special signal instead of a dedicated swd mask. Amend
    jtag-lock-pick_tiny_2 config accordingly.
    
    Change-Id: Ifb007a0b5434b590c52f936efd5f5458e913e2e4
    Signed-off-by: Paul Fertser <fercer...@gmail.com>

diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index 9d79109..3436fac 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -127,8 +127,6 @@ static uint16_t output;
 static uint16_t direction;
 static uint16_t jtag_output_init;
 static uint16_t jtag_direction_init;
-static uint16_t swd_output_init;
-static uint16_t swd_direction_init;
 
 static int ftdi_swd_switch_seq(struct adiv5_dap *dap, enum swd_special_seq 
seq);
 
@@ -634,8 +632,19 @@ static int ftdi_initialize(void)
        if (!mpsse_ctx)
                return ERROR_JTAG_INIT_FAILED;
 
-       output = swd_mode ? swd_output_init : jtag_output_init;
-       direction = swd_mode ? swd_direction_init : jtag_direction_init;
+       output = jtag_output_init;
+       direction = jtag_direction_init;
+
+       if (swd_mode) {
+               struct signal *sig = find_signal_by_name("SWD_EN");
+               if (!sig) {
+                       LOG_ERROR("SWD mode is active but SWD_EN signal is not 
defined");
+                       return ERROR_JTAG_INIT_FAILED;
+               }
+               /* A dummy SWD_EN would have zero mask */
+               if (sig->data_mask)
+                       ftdi_set_signal(sig, '1');
+       }
 
        mpsse_set_data_bits_low_byte(mpsse_ctx, output & 0xff, direction & 
0xff);
        mpsse_set_data_bits_high_byte(mpsse_ctx, output >> 8, direction >> 8);
@@ -707,17 +716,6 @@ COMMAND_HANDLER(ftdi_handle_layout_init_command)
        return ERROR_OK;
 }
 
-COMMAND_HANDLER(ftdi_handle_layout_init_swd_command)
-{
-       if (CMD_ARGC != 2)
-               return ERROR_COMMAND_SYNTAX_ERROR;
-
-       COMMAND_PARSE_NUMBER(u16, CMD_ARGV[0], swd_output_init);
-       COMMAND_PARSE_NUMBER(u16, CMD_ARGV[1], swd_direction_init);
-
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(ftdi_handle_layout_signal_command)
 {
        if (CMD_ARGC < 1)
@@ -863,17 +861,7 @@ static const struct command_registration 
ftdi_command_handlers[] = {
                .handler = &ftdi_handle_layout_init_command,
                .mode = COMMAND_CONFIG,
                .help = "initialize the FTDI GPIO signals used "
-                       "to control output-enables and reset signals"
-                       "when JTAG mode is selected",
-               .usage = "data direction",
-       },
-       {
-               .name = "ftdi_layout_init_swd",
-               .handler = &ftdi_handle_layout_init_swd_command,
-               .mode = COMMAND_CONFIG,
-               .help = "initialize the FTDI GPIO signals used "
-                       "to control output-enables and reset signals"
-                       "when SWD mode is selected",
+                       "to control output-enables and reset signals",
                .usage = "data direction",
        },
        {
diff --git a/tcl/interface/ftdi/jtag-lock-pick_tiny_2.cfg 
b/tcl/interface/ftdi/jtag-lock-pick_tiny_2.cfg
index 10eedde..c1c10b9 100644
--- a/tcl/interface/ftdi/jtag-lock-pick_tiny_2.cfg
+++ b/tcl/interface/ftdi/jtag-lock-pick_tiny_2.cfg
@@ -9,7 +9,7 @@ ftdi_device_desc "JTAG-lock-pick Tiny 2"
 ftdi_vid_pid 0x0403 0x8220
 
 ftdi_layout_init 0x8c28 0xff3b
-ftdi_layout_init_swd 0xac08 0xff3b
+ftdi_layout_signal SWD_EN -data 0x2000
 ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
 ftdi_layout_signal nSRST -data 0x0200 -noe 0x0800
 ftdi_layout_signal SWDIO_OE -ndata 0x1000

-- 

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to