Hello,
it looks like the latest ftdi code checks for ftdi->usb_dev not null
before doing anything else. this breaks the libftdi driver for windows
(cross-compiled using mingw32 on debian)
here is the ftdi code :
int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface)
{
if (ftdi == NULL || ftdi->usb_dev == NULL)
ftdi_error_return(-2, "USB device unavailable");
switch (interface)
{
case INTERFACE_ANY:
case INTERFACE_A:
/* ftdi_usb_open_desc cares to set the right index,
depending on the found chip */
break;
case INTERFACE_B:
The following patch fixes it :
diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c
old mode 100644
new mode 100755
index 38195c7..3ea6246
--- a/src/jtag/drivers/ft2232.c
+++ b/src/jtag/drivers/ft2232.c
@@ -2196,11 +2196,11 @@ static int ft2232_init_libftdi(uint16_t vid,
uint16_t pid, int more, int* try_mo
/* default to INTERFACE_A */
if(channel == INTERFACE_ANY) { channel = INTERFACE_A; }
- if (ftdi_set_interface(&ftdic, channel) < 0)
- {
- LOG_ERROR("unable to select FT2232 channel A: %s",
ftdic.error_str);
- return ERROR_JTAG_INIT_FAILED;
- }
+// if (ftdi_set_interface(&ftdic, channel) < 0)
+// {
+// LOG_ERROR("unable to select FT2232 channel A: %s",
ftdic.error_str);
+// return ERROR_JTAG_INIT_FAILED;
+// }
/* context, vendor id, product id */
if (ftdi_usb_open_desc(&ftdic, vid, pid, ft2232_device_desc,
Not sure if it is the best solution, but seems to work.
Regards
Francois
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development