From 8bf24de7b3e60681c302baaaa9bce4bc8e39a5c7 Mon Sep 17 00:00:00 2001 From: ntfreak Date: Fri, 2 May 2008 09:35:48 +0000 Subject: [PATCH] - added info about libftdi support under win32 git-svn-id: svn://svn.berlios.de/openocd/trunk@638 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- contrib/libftdi/README | 7 +++++++ contrib/libftdi/libftdi-0.12_win32.patch | 20 ++++++++++++++++++++ doc/openocd.texi | 4 ++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 contrib/libftdi/README create mode 100644 contrib/libftdi/libftdi-0.12_win32.patch diff --git a/contrib/libftdi/README b/contrib/libftdi/README new file mode 100644 index 00000000..475c4e55 --- /dev/null +++ b/contrib/libftdi/README @@ -0,0 +1,7 @@ +libftdi can be built to work under win32 (cygwin/mingw) after applying the patch in this directory. + +The issue is caused by windows requiring usb_set_configuration to be called before the usb_claim_interface. + +Spen +spen@spen-soft.co.uk + diff --git a/contrib/libftdi/libftdi-0.12_win32.patch b/contrib/libftdi/libftdi-0.12_win32.patch new file mode 100644 index 00000000..426523c7 --- /dev/null +++ b/contrib/libftdi/libftdi-0.12_win32.patch @@ -0,0 +1,20 @@ +--- src/ftdi.c.orig Wed Apr 16 16:24:30 2008 ++++ src/ftdi.c Thu May 01 20:19:46 2008 +@@ -358,6 +358,17 @@ + if (usb_detach_kernel_driver_np(ftdi->usb_dev, ftdi->interface) != 0 && errno != ENODATA) + detach_errno = errno; + #endif ++ ++#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ++ if (usb_set_configuration(ftdi->usb_dev, 1) != 0) { ++ usb_close (ftdi->usb_dev); ++ if (detach_errno == EPERM) { ++ ftdi_error_return(-8, "inappropriate permissions on device!"); ++ } else { ++ ftdi_error_return(-5, "unable to set configuration"); ++ } ++ } ++#endif + + if (usb_claim_interface(ftdi->usb_dev, ftdi->interface) != 0) { + usb_close (ftdi->usb_dev); diff --git a/doc/openocd.texi b/doc/openocd.texi index 551b62c5..0c5a165e 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -126,8 +126,8 @@ a FTDI FT2232 based interface: homepage (@uref{www.amontec.com}), as the JTAGkey uses a non-standard VID/PID. @end itemize -Please note that the ftdi2232 variant (using libftdi) isn't supported under Cygwin. -You have to use the ftd2xx variant (using FTDI's D2XX) on Cygwin. +libftdi is supported under windows. Versions earlier than 0.13 will require patching. +see contrib/libftdi for more details. In general, the D2XX driver provides superior performance (several times as fast), but has the draw-back of being binary-only - though that isn't that bad, as it isn't -- 2.39.5