Also add the redbee-usb board which is the same as the econotag but
used INTERFACE_B.
---
 src/jtag/drivers/ft2232.c |   48 +++++++++++++++++++++++---------------------
 tcl/board/redbee-usb.cfg  |    5 ++++
 2 files changed, 30 insertions(+), 23 deletions(-)
 create mode 100644 tcl/board/redbee-usb.cfg

diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c
index 2d7d415..f608e02 100644
--- a/src/jtag/drivers/ft2232.c
+++ b/src/jtag/drivers/ft2232.c
@@ -145,6 +145,7 @@ struct ft2232_layout {
        int (*init)(void);
        void (*reset)(int trst, int srst);
        void (*blink)(void);
+       int interface;
 };
 
 /* init procedures for supported layouts */
@@ -186,26 +187,27 @@ static void ktlink_blink(void);
 
 static const struct ft2232_layout  ft2232_layouts[] =
 {
-       { "usbjtag",              usbjtag_init,              usbjtag_reset,     
 NULL                    },
-       { "jtagkey",              jtagkey_init,              jtagkey_reset,     
 NULL                    },
-       { "jtagkey_prototype_v1", jtagkey_init,              jtagkey_reset,     
 NULL                    },
-       { "oocdlink",             jtagkey_init,              jtagkey_reset,     
 NULL                    },
-       { "signalyzer",           usbjtag_init,              usbjtag_reset,     
 NULL                    },
-       { "evb_lm3s811",          usbjtag_init,              usbjtag_reset,     
 NULL                    },
-       { "luminary_icdi",        usbjtag_init,              usbjtag_reset,     
 NULL                    },
-       { "olimex-jtag",          olimex_jtag_init,          olimex_jtag_reset, 
 olimex_jtag_blink       },
-       { "flyswatter",           flyswatter_init,           flyswatter_reset,  
 flyswatter_jtag_blink   },
-       { "turtelizer2",          turtle_init,               turtle_reset,      
 turtle_jtag_blink       },
-       { "comstick",             comstick_init,             comstick_reset,    
 NULL                    },
-       { "stm32stick",           stm32stick_init,           stm32stick_reset,  
 NULL                    },
-       { "axm0432_jtag",         axm0432_jtag_init,         
axm0432_jtag_reset, NULL                    },
-       { "sheevaplug",           sheevaplug_init,           sheevaplug_reset,  
 NULL                    },
-       { "icebear",              icebear_jtag_init,         
icebear_jtag_reset, NULL                    },
-       { "cortino",              cortino_jtag_init,         comstick_reset, 
NULL                        },
-       { "signalyzer-h",         signalyzer_h_init,         
signalyzer_h_reset, signalyzer_h_blink      },
-       { "ktlink",               ktlink_init,               ktlink_reset,      
 ktlink_blink            },
-       { "redbee-econotag",      redbee_init,               
axm0432_jtag_reset, NULL                    },
-       { NULL,                   NULL,                      NULL,              
 NULL                    },
+       { "usbjtag",              usbjtag_init,              usbjtag_reset,     
 NULL, INTERFACE_A       },
+       { "jtagkey",              jtagkey_init,              jtagkey_reset,     
 NULL, INTERFACE_A       },
+       { "jtagkey_prototype_v1", jtagkey_init,              jtagkey_reset,     
 NULL, INTERFACE_A       },
+       { "oocdlink",             jtagkey_init,              jtagkey_reset,     
 NULL, INTERFACE_A       },
+       { "signalyzer",           usbjtag_init,              usbjtag_reset,     
 NULL, INTERFACE_A       },
+       { "evb_lm3s811",          usbjtag_init,              usbjtag_reset,     
 NULL, INTERFACE_A       },
+       { "luminary_icdi",        usbjtag_init,              usbjtag_reset,     
 NULL, INTERFACE_A       },
+       { "olimex-jtag",          olimex_jtag_init,          olimex_jtag_reset, 
 olimex_jtag_blink, INTERFACE_A},
+       { "flyswatter",           flyswatter_init,           flyswatter_reset,  
 flyswatter_jtag_blink, INTERFACE_A   },
+       { "turtelizer2",          turtle_init,               turtle_reset,      
 turtle_jtag_blink, INTERFACE_A       },
+       { "comstick",             comstick_init,             comstick_reset,    
 NULL, INTERFACE_A       },
+       { "stm32stick",           stm32stick_init,           stm32stick_reset,  
 NULL, INTERFACE_A       },
+       { "axm0432_jtag",         axm0432_jtag_init,         
axm0432_jtag_reset, NULL, INTERFACE_A       },
+       { "sheevaplug",           sheevaplug_init,           sheevaplug_reset,  
 NULL, INTERFACE_A       },
+       { "icebear",              icebear_jtag_init,         
icebear_jtag_reset, NULL, INTERFACE_A       },
+       { "cortino",              cortino_jtag_init,         comstick_reset,    
 NULL, INTERFACE_A       },
+       { "signalyzer-h",         signalyzer_h_init,         
signalyzer_h_reset, signalyzer_h_blink, INTERFACE_A      },
+       { "ktlink",               ktlink_init,               ktlink_reset,      
 ktlink_blink, INTERFACE_A            },
+       { "redbee-econotag",         redbee_init,         axm0432_jtag_reset, 
NULL, INTERFACE_A       },
+       { "redbee-usb",         redbee_init,         axm0432_jtag_reset, NULL, 
INTERFACE_B       },
+       { NULL,                   NULL,                      NULL,              
 NULL, INTERFACE_ANY      },
 };
 
 static uint8_t                  nTRST, nTRSTnOE, nSRST, nSRSTnOE;
@@ -2005,7 +2007,7 @@ static int ft2232_purge_ftd2xx(void)
 #endif /* BUILD_FT2232_FTD2XX == 1 */
 
 #if BUILD_FT2232_LIBFTDI == 1
-static int ft2232_init_libftdi(uint16_t vid, uint16_t pid, int more, int* 
try_more)
+static int ft2232_init_libftdi(uint16_t vid, uint16_t pid, int more, int* 
try_more, int interface)
 {
        uint8_t latency_timer;
 
@@ -2015,7 +2017,7 @@ static int ft2232_init_libftdi(uint16_t vid, uint16_t 
pid, int more, int* try_mo
        if (ftdi_init(&ftdic) < 0)
                return ERROR_JTAG_INIT_FAILED;
 
-       if (ftdi_set_interface(&ftdic, INTERFACE_A) < 0)
+       if (ftdi_set_interface(&ftdic, interface) < 0)
        {
                LOG_ERROR("unable to select FT2232 channel A: %s", 
ftdic.error_str);
                return ERROR_JTAG_INIT_FAILED;
@@ -2140,7 +2142,7 @@ static int ft2232_init(void)
                                more, &try_more);
 #elif BUILD_FT2232_LIBFTDI == 1
                retval = ft2232_init_libftdi(ft2232_vid[i], ft2232_pid[i],
-                               more, &try_more);
+                                            more, &try_more, 
cur_layout->interface);
 #endif
                if (retval >= 0)
                        break;
diff --git a/tcl/board/redbee-usb.cfg b/tcl/board/redbee-usb.cfg
new file mode 100644
index 0000000..2d1de92
--- /dev/null
+++ b/tcl/board/redbee-usb.cfg
@@ -0,0 +1,5 @@
+source [find target/mc13224v.cfg]
+
+interface ft2232
+ft2232_layout redbee-usb
+ft2232_vid_pid 0x0403 0x6010
-- 
1.5.6.5

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to