Hello, On Mon, Feb 02, 2015 at 07:00:45PM +0200, Liviu Ionescu wrote: > I checked the latest openocd.pdf manual (Feb 2), and at page 42 the > olimex-jtag is listed below the ft2232_layout command.
Right, because the legacy ft2232 driver supports Olimex adapters. It doesn't mean though that it's the most appropriate driver. The OpenOCD project declared ft2232 driver deprecated in http://openocd.zylin.com/gitweb?p=openocd.git;a=commitdiff;h=09e9625d6ce52bbed271c1087df58fb3bb78b99a discussion took place on http://openocd.zylin.com/#/c/1899/ . The official manual has this note: "Note that this driver has several flaws and the @command{ftdi} driver is recommended as its replacement" right at the beginning of the ft2232 driver description. I thought we made sure nobody would get confused thanks to configure-time and runtime warnings, but apparently we failed. But where? What makes people explicitly enable _legacy_ driver and not paying any attention to the runtime warnings emitted every time they are using ft2232? I'd really like to understand how exactly that happens to fix whatever is broken here. > I also checked the Olimex documentation > (https://www.olimex.com/Products/ARM/JTAG/_resources/ARM-USB-OCD_and_OCD_H_manual.pdf) > and at page 13 it is clearly stated: > > "Please note that since OpenOCD 0.8.0 FTDI drivers are recommended! > It was quite the opposite before 0.8.0 when LibUSB drivers were > suggested as default. Unfortunately, it looks like Olimex didn't ask anybody who knows the current situation when they were writing this. Moreover, the cited text is really strange! There's no notion of "FTDI drivers" at all, and there's no "LibUSB drivers" either. The legacy ft2232 driver (in OpenOCD terminology) was using libftdi which was using libusb-0.1 or libusb-1.0 (for libftdi1) API with libraries (not driver) which were using the in-kernel USB support directly (without device drivers in kernel terminology) on every system apart from windows where libusb-0.1 API is usually provided by libusb-win32 library and _driver_ (in kernel terminology) and libusb-1.0 API is provided by the libusb library which uses either WinUSB or libusbK.sys _driver_ (in kernel terminology). The new "ftdi" driver (in OpenOCD terminology) is using libusb-1.0 API directly, so it goes via in-kernel USB core driver (in kernel terminology) on all systems but windows (where WinUSB or libusbK.sys kernel driver needs to be installed for the specific device). > If you are going for FTDI driver support: > > ./bootstrap > ./configure --enable-ftdi --enable-ft2232_ftd2xx That doesn't work with 0.8.0 and higher since the --enable-ft2232_ftd2xx option was renamed to embed _legacy_ in it to avoid confusion. Also, --enable-ftdi doesn't do much because if libusb-1.0 development files are present in the OS, it will get auto-enabled, and if not, ./configure will emit an error. Also, even though the deprecated ft2232 driver can be built against ftd2xx proprietary FTDI library (which requires proprietary D2XX kernel driver on windows) it's not recommended because the resulting binaries can't be legally distributed at all. And ftd2xx is not any better than libftdi1 anyway. > ./bootstrap > ./configure --enable-maintainer-mode --enable-ft2232_libftdi --enable-maintainer-mode was removed before 0.8.0 release as it's a useless option. --enable-ft2232_libftdi was renamed for the reasons outlined above. > On the other hand you say that adding any --enable-ftdi* is no > longer necessary in the configure step for any devices except USB > Blaster v1. What I really mean is that if libusb-1.0 and libusb-0.1 and HIDAPI development files are available, configure will auto-enable all the drivers that depend on those APIs. libftdi-based drivers are not included in the auto-detection procedure, so any libftdi-based driver (including the one for Altera USB Blaster v1) needs to be enabled explicitly. > Is there any document where I can find the actual configuration > options required for various devices? Or, the other way around, what > are the devices supported by the default configuration that you > recommend? ./configure --help output is supposed to explain everything relevant, if it doesn't, I'm ready to fix it, I just need to know what exactly. I recommend to build with these options (provided libusb-1.0, libusb-1.0 and HIDAPI APIs are available via pkg-config in the host OS): --enable-buspirate --enable-amtjtagaccel --enable-oocd_trace --enable-arm-jtag-ew --enable-sysfsgpio (on systems using Linux, the kernel) --enable-usb_blaster_libftdi --enable-openjtag_ftdi --enable-presto_libftdi --enable-dummy --enable-remote-bitbang --enable-parport All the other common adapter drivers will get auto-enabled. I hope this helps to clarify the situation. -- Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software! mailto:fercer...@gmail.com ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel