Elden Tyrell
2012-08-05 05:08:27 UTC
This has been bugging me for some time...
Has anybody noticed that you can't actually use the VID/PID arguments to override the built-in USB ids for libftdi-based cables? This is really unfortunate, because a lot of cables out there are just knock-offs of some existing urjtag-supported cable with the VID/PID changed.
Here's an example: I have an Olimex ARM-USB-OCD-H (FT2232H).
$ lsusb | grep -i olimex
Bus 002 Device 006: ID 15ba:002a Olimex Ltd.
It isn't recognized by urjtag svn-2026 as either an ARM-USB-OCD-H or a gnICE+:
UrJTAG 0.10 #2026
Copyright (C) 2002, 2003 ETC s.r.o.
...
jtag> cable ARM-USB-OCD-H
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
...
jtag> cable gnICE+
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
jtag> cable gnICE+ VID=15ba PID=002a
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
On the other hand if I change the VID and PID in the source code like this:
svn diff src/tap
Index: src/tap/cable/ft2232.c
===================================================================
--- src/tap/cable/ft2232.c (revision 2026)
+++ src/tap/cable/ft2232.c (working copy)
@@ -2353,7 +2353,7 @@
ft2232_flush,
ftdx_usbcable_help
};
-URJ_DECLARE_FTDX_CABLE(0x0456, 0xF001, "-mpsse", "gnICE+", gniceplus)
+URJ_DECLARE_FTDX_CABLE(0x15ba, 0x002a, "-mpsse", "gnICE+", gniceplus)
const urj_cable_driver_t urj_tap_cable_ft2232_jtagkey_driver = {
"JTAGkey",
... it works perfectly!
jtag> cable gnICE+
Connected to libftdi driver.
jtag> idcode
Reading 0 bytes of idcode
Read 10010011(0x93) 11010000(0xd0) 00000001(0x01) 00110100(0x34) 00000000(0x00) 00000000(0x00) 00000000(0x00) 00000000(0x00)
So, my question: why are the runtime VID/PID parameters ignored?
Thanks,
- e
Has anybody noticed that you can't actually use the VID/PID arguments to override the built-in USB ids for libftdi-based cables? This is really unfortunate, because a lot of cables out there are just knock-offs of some existing urjtag-supported cable with the VID/PID changed.
Here's an example: I have an Olimex ARM-USB-OCD-H (FT2232H).
$ lsusb | grep -i olimex
Bus 002 Device 006: ID 15ba:002a Olimex Ltd.
It isn't recognized by urjtag svn-2026 as either an ARM-USB-OCD-H or a gnICE+:
UrJTAG 0.10 #2026
Copyright (C) 2002, 2003 ETC s.r.o.
...
jtag> cable ARM-USB-OCD-H
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
...
jtag> cable gnICE+
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
jtag> cable gnICE+ VID=15ba PID=002a
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
On the other hand if I change the VID and PID in the source code like this:
svn diff src/tap
Index: src/tap/cable/ft2232.c
===================================================================
--- src/tap/cable/ft2232.c (revision 2026)
+++ src/tap/cable/ft2232.c (working copy)
@@ -2353,7 +2353,7 @@
ft2232_flush,
ftdx_usbcable_help
};
-URJ_DECLARE_FTDX_CABLE(0x0456, 0xF001, "-mpsse", "gnICE+", gniceplus)
+URJ_DECLARE_FTDX_CABLE(0x15ba, 0x002a, "-mpsse", "gnICE+", gniceplus)
const urj_cable_driver_t urj_tap_cable_ft2232_jtagkey_driver = {
"JTAGkey",
... it works perfectly!
jtag> cable gnICE+
Connected to libftdi driver.
jtag> idcode
Reading 0 bytes of idcode
Read 10010011(0x93) 11010000(0xd0) 00000001(0x01) 00110100(0x34) 00000000(0x00) 00000000(0x00) 00000000(0x00) 00000000(0x00)
So, my question: why are the runtime VID/PID parameters ignored?
Thanks,
- e