ft2232: Mark interface driver as deprecated 99/1899/4
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>
Sat, 22 Mar 2014 13:09:06 +0000 (14:09 +0100)
committerSpencer Oliver <spen@spen-soft.co.uk>
Fri, 28 Mar 2014 10:07:01 +0000 (10:07 +0000)
Change-Id: I5ebc924ab66c86f1902942bebc203a34d97abc64
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1899
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Tested-by: Spencer Oliver <spen@spen-soft.co.uk>
README.Windows
configure.ac
src/jtag/drivers/ft2232.c

index 61a712a..9cdd55c 100644 (file)
@@ -32,3 +32,18 @@ WinUSB to a device is to use the latest Zadig installer:
 For the old drivers that use libusb-0.1 API you might need to link
 against libusb-win32 headers and install the corresponding driver with
 Zadig.
+
+If you need to use the same adapter with other applications that may
+require another driver, a solution for Windows Vista and above is to
+activate the IgnoreHWSerNum registry setting for the USB device.
+
+That setting forces Windows to associate the driver per port instead of
+per serial number, the same behaviour as when the device does not contain
+a serial number. So different drivers can be installed for the adapter on
+different ports and you just need to plug the adapter into the correct
+port depending on which application to use.
+
+For more information, see:
+
+  http://msdn.microsoft.com/en-us/library/windows/hardware/jj649944(v=vs.85).aspx
+  http://www.ftdichip.com/Support/Knowledgebase/index.html?ignorehardwareserialnumber.htm
index 73f7bef..c8eeea9 100644 (file)
@@ -387,12 +387,24 @@ AC_ARG_ENABLE([parport_giveio],
       [Enable use of giveio for parport (for CygWin only)]),
     [parport_use_giveio=$enableval], [parport_use_giveio=])
 
-AC_ARG_ENABLE([ft2232_libftdi],
-  AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
+AC_ARG_ENABLE([ft2232_libftdi], [], [
+if test $enableval = yes; then
+  AC_MSG_ERROR([The ft2232 driver is deprecated, use --enable-ftdi to build its replacement, or force the old driver with --enable-legacy-ft2232_libftdi])
+fi
+])
+
+AC_ARG_ENABLE([ft2232_ftd2xx], [], [
+if test $enableval = yes; then
+  AC_MSG_ERROR([The ft2232 driver is deprecated, use --enable-ftdi to build its replacement, or force the old driver with --enable-legacy-ft2232_ftd2xx])
+fi
+])
+
+AC_ARG_ENABLE([legacy-ft2232_libftdi],
+  AS_HELP_STRING([--enable-legacy-ft2232_libftdi], [(DEPRECATED) Enable building support for FT2232 based devices using the libftdi library]),
   [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
 
-AC_ARG_ENABLE([ft2232_ftd2xx],
-  AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
+AC_ARG_ENABLE([legacy-ft2232_ftd2xx],
+  AS_HELP_STRING([--enable-legacy-ft2232_ftd2xx], [(DEPRECATED) Enable building support for FT2232 based devices using the D2XX library from ftdichip.com]),
   [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
 
 AC_ARG_ENABLE([jtag_vpi],
@@ -1320,3 +1332,12 @@ m4_foreach([adapter], [USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS, HIDAPI_ADAPTE
        esac
 ])
 echo
+
+if test $build_ft2232_libftdi = yes -o $build_ft2232_ftd2xx = yes; then
+       if test $enable_ftdi = no; then
+               AC_MSG_WARN([Building the deprecated 'ft2232' adapter driver but not its replacement!])
+               AC_MSG_WARN([Please consider using --enable-ftdi instead.])
+       else
+               AC_MSG_WARN([Building the deprecated 'ft2232' adapter driver.])
+       fi
+fi
index c4a74ef..19f4dcb 100644 (file)
@@ -2341,6 +2341,11 @@ static int ft2232_init(void)
        int retval;
        uint32_t bytes_written;
 
+       LOG_WARNING("Using DEPRECATED interface driver 'ft2232'");
+#if BUILD_FTDI
+       LOG_INFO("Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...");
+#endif
+
        if (tap_get_tms_path_len(TAP_IRPAUSE, TAP_IRPAUSE) == 7)
                LOG_DEBUG("ft2232 interface using 7 step jtag state transitions");
        else