Hi Michael:
sorry for previous one, I forget to make it sorted, please review this
patch and tell me if I miss something.
thank you.
On Fri, Jan 28, 2011 at 6:15 PM, Orasanu Lucian
<[email protected]> wrote:
> 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)
@@ -57,6 +57,7 @@
_URJ_CABLE(ft2232_oocdlinks)
_URJ_CABLE(ft2232_signalyzer)
_URJ_CABLE(ft2232_turtelizer2)
+_URJ_CABLE(ft2232_usbjtagrs232)
_URJ_CABLE(ft2232_usbscarab2)
_URJ_CABLE(ft2232_usbtojtagif)
#endif
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)
@@ -56,6 +56,7 @@
_URJ_USB_FTDX(oocdlinks)
_URJ_USB_FTDX(signalyzer)
_URJ_USB_FTDX(turtelizer2)
+_URJ_USB_FTDX(usbjtagrs232)
_URJ_USB_FTDX(usbscarab2)
_URJ_USB_FTDX(usbtojtagif)
#endif
Index: urjtag/src/tap/cable/ft2232.c
===================================================================
--- urjtag/src/tap/cable/ft2232.c (revision 1869)
+++ urjtag/src/tap/cable/ft2232.c (working copy)
@@ -148,6 +148,16 @@
#define BITMASK_TURTELIZER2_nTX1LED (1 << BIT_TURTELIZER2_nTX1LED)
#define BITMASK_TURTELIZER2_nRX1LED (1 << BIT_TURTELIZER2_nRX1LED)
+/* 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 USB to JTAG Interface */
#define BIT_USBTOJTAGIF_nTRST 4
#define BIT_USBTOJTAGIF_RST 6
@@ -631,6 +641,58 @@
}
+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_usbtojtagif_init (urj_cable_t *cable)
{
@@ -1120,6 +1182,48 @@
}
+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_usbtojtagif_done (urj_cable_t *cable)
{
@@ -2173,6 +2277,26 @@
};
URJ_DECLARE_FTDX_CABLE(0x0403, 0xBDC8, "-mpsse", "Turtelizer2", turtelizer2)
+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_usbtojtagif_driver = {
"USB-to-JTAG-IF",
N_("USB to JTAG Interface (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