OK, here a second version, please let me know if it is ok.
thank you.
On Sun, Jan 16, 2011 at 10:43 PM, Mike Frysinger <[email protected]> wrote:
> please keep the lists in cable_list.h and generic_usbconn_list.h sorted
>
> your ft2232.c changes seem to be against an older version because it is
> copying older styles that have been fixed -- useless casts against the cable-
>>params and useless parens around the cmd_root
>
> please fix & resubmit ... the rest looks fine
> -mike
>
Index: urjtag/src/tap/cable_list.h
===================================================================
--- urjtag/src/tap/cable_list.h (revision 1869)
+++ urjtag/src/tap/cable_list.h (working copy)
@@ -55,6 +55,7 @@
_URJ_CABLE(ft2232_jtagkey)
_URJ_CABLE(ft2232_milkymist)
_URJ_CABLE(ft2232_oocdlinks)
+_URJ_CABLE(ft2232_usbjtagrs232)
_URJ_CABLE(ft2232_signalyzer)
_URJ_CABLE(ft2232_turtelizer2)
_URJ_CABLE(ft2232_usbscarab2)
Index: urjtag/src/tap/cable/generic_usbconn_list.h
===================================================================
--- urjtag/src/tap/cable/generic_usbconn_list.h (revision 1869)
+++ urjtag/src/tap/cable/generic_usbconn_list.h (working copy)
@@ -54,6 +54,7 @@
_URJ_USB_FTDX(jtagkey)
_URJ_USB_FTDX(milkymist)
_URJ_USB_FTDX(oocdlinks)
+_URJ_USB_FTDX(usbjtagrs232)
_URJ_USB_FTDX(signalyzer)
_URJ_USB_FTDX(turtelizer2)
_URJ_USB_FTDX(usbscarab2)
Index: urjtag/src/tap/cable/ft2232.c
===================================================================
--- urjtag/src/tap/cable/ft2232.c (revision 1869)
+++ urjtag/src/tap/cable/ft2232.c (working copy)
@@ -138,6 +138,16 @@
#define BITMASK_OOCDLINKS_nSRST_nOE (1 << BIT_OOCDLINKS_nSRST_nOE)
#define BITMASK_OOCDLINKS_nSRST (1 << BIT_OOCDLINKS_nSRST)
+/* bit and bitmask definitions for USB<=>JTAG&RS232 */
+#define BIT_USBJTAGRS232_nTRST_nOE 2
+#define BIT_USBJTAGRS232_nTRST 0
+#define BIT_USBJTAGRS232_nSRST_nOE 3
+#define BIT_USBJTAGRS232_nSRST 1
+#define BITMASK_USBJTAGRS232_nTRST_nOE (1 << BIT_USBJTAGRS232_nTRST_nOE)
+#define BITMASK_USBJTAGRS232_nTRST (1 << BIT_USBJTAGRS232_nTRST)
+#define BITMASK_USBJTAGRS232_nSRST_nOE (1 << BIT_USBJTAGRS232_nSRST_nOE)
+#define BITMASK_USBJTAGRS232_nSRST (1 << BIT_USBJTAGRS232_nSRST)
+
/* bit and bitmask definitions for Turtelizer 2 */
#define BIT_TURTELIZER2_nJTAGOE 4
#define BIT_TURTELIZER2_RST 6
@@ -583,6 +593,59 @@
static int
+ft2232_usbjtagrs232_init (urj_cable_t *cable)
+{
+ params_t *params = cable->params;
+ urj_tap_cable_cx_cmd_root_t *cmd_root = ¶ms->cmd_root;
+
+ if (urj_tap_usbconn_open (cable->link.usb) != URJ_STATUS_OK)
+ return URJ_STATUS_FAIL;
+
+ /* static low byte value and direction */
+ params->low_byte_value = 0;
+ params->low_byte_dir = 0;
+
+ /* Set Data Bits Low Byte
+ TCK = 0, TMS = 1, TDI = 0 */
+ urj_tap_cable_cx_cmd_queue (cmd_root, 0);
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_LOW);
+ urj_tap_cable_cx_cmd_push (cmd_root,
+ params->low_byte_value | BITMASK_TMS);
+ urj_tap_cable_cx_cmd_push (cmd_root,
+ params->low_byte_dir | BITMASK_TCK
+ | BITMASK_TDI | BITMASK_TMS);
+
+ /* Set Data Bits High Byte
+ default:
+ TRST = 1
+ TRST buffer enable = 0
+ SRST = 1
+ SRST buffer enable = 0 */
+ params->high_byte_value = BITMASK_USBJTAGRS232_nTRST
+ | BITMASK_USBJTAGRS232_nSRST;
+ params->high_byte_dir = BITMASK_USBJTAGRS232_nTRST
+ | BITMASK_USBJTAGRS232_nTRST_nOE
+ | BITMASK_USBJTAGRS232_nSRST | BITMASK_USBJTAGRS232_nSRST_nOE;
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_HIGH);
+ urj_tap_cable_cx_cmd_push (cmd_root, params->high_byte_value);
+ urj_tap_cable_cx_cmd_push (cmd_root, 0);
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_HIGH);
+ urj_tap_cable_cx_cmd_push (cmd_root, params->high_byte_value);
+ urj_tap_cable_cx_cmd_push (cmd_root, params->high_byte_dir);
+
+ ft2232_set_frequency (cable, FT2232_MAX_TCK_FREQ);
+
+ params->bit_trst = BIT_USBJTAGRS232_nTRST + 8; /* member of HIGH byte */
+ params->bit_reset = BIT_USBJTAGRS232_nSRST + 8; /* member of HIGH byte */
+
+ params->last_tdo_valid = 0;
+ params->signals = URJ_POD_CS_TRST | URJ_POD_CS_RESET;
+
+ return URJ_STATUS_OK;
+}
+
+
+static int
ft2232_turtelizer2_init (urj_cable_t *cable)
{
params_t *params = cable->params;
@@ -1080,6 +1143,49 @@
static void
+ft2232_usbjtagrs232_done (urj_cable_t *cable)
+{
+ params_t *params = cable->params;
+ urj_tap_cable_cx_cmd_root_t *cmd_root = ¶ms->cmd_root;
+
+ /* Set Data Bits Low Byte
+ set all to input */
+ urj_tap_cable_cx_cmd_queue (cmd_root, 0);
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_LOW);
+ urj_tap_cable_cx_cmd_push (cmd_root, 0);
+ urj_tap_cable_cx_cmd_push (cmd_root, 0);
+
+ /* Set Data Bits High Byte
+ disable output drivers */
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_HIGH);
+ urj_tap_cable_cx_cmd_push (cmd_root,
+ BITMASK_USBJTAGRS232_nTRST
+ | BITMASK_USBJTAGRS232_nTRST_nOE
+ | BITMASK_USBJTAGRS232_nSRST |
+ BITMASK_USBJTAGRS232_nSRST_nOE);
+ urj_tap_cable_cx_cmd_push (cmd_root,
+ BITMASK_USBJTAGRS232_nTRST |
+ BITMASK_USBJTAGRS232_nTRST_nOE |
+ BITMASK_USBJTAGRS232_nSRST |
+ BITMASK_USBJTAGRS232_nSRST_nOE);
+
+ /* Set Data Bits High Byte
+ set all to input */
+ urj_tap_cable_cx_cmd_push (cmd_root, SET_BITS_HIGH);
+ urj_tap_cable_cx_cmd_push (cmd_root,
+ BITMASK_USBJTAGRS232_nTRST
+ | BITMASK_USBJTAGRS232_nTRST_nOE
+ | BITMASK_USBJTAGRS232_nSRST |
+ BITMASK_USBJTAGRS232_nSRST_nOE);
+ urj_tap_cable_cx_cmd_push (cmd_root, 0);
+ urj_tap_cable_cx_xfer (cmd_root, &imm_cmd, cable,
+ URJ_TAP_CABLE_COMPLETELY);
+
+ urj_tap_cable_generic_usbconn_done (cable);
+}
+
+
+static void
ft2232_turtelizer2_done (urj_cable_t *cable)
{
params_t *params = cable->params;
@@ -2153,6 +2259,26 @@
};
URJ_DECLARE_FTDX_CABLE(0x0403, 0xbaf8, "-mpsse", "OOCDLink-s", oocdlinks)
+const urj_cable_driver_t urj_tap_cable_ft2232_usbjtagrs232_driver = {
+ "USB<=>JTAG&RS232",
+ N_("USB<=>JTAG&RS232 (FT2232) Cable (EXPERIMENTAL)"),
+ URJ_CABLE_DEVICE_USB,
+ { .usb = ft2232_connect, },
+ urj_tap_cable_generic_disconnect,
+ ft2232_cable_free,
+ ft2232_usbjtagrs232_init,
+ ft2232_usbjtagrs232_done,
+ ft2232_set_frequency,
+ ft2232_clock,
+ ft2232_get_tdo,
+ ft2232_transfer,
+ ft2232_set_signal,
+ urj_tap_cable_generic_get_signal,
+ ft2232_flush,
+ ftdx_usbcable_help
+};
+URJ_DECLARE_FTDX_CABLE(0x1457, 0x5118, "-mpsse", "USB<=>JTAG&RS232", usbjtagrs232)
+
const urj_cable_driver_t urj_tap_cable_ft2232_turtelizer2_driver = {
"Turtelizer2",
N_("Turtelizer 2 Rev. B (FT2232) Cable (EXPERIMENTAL)"),
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
UrJTAG-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development