Hi Mathias,
I tried with 2 completely different hosts, installing stuff from
scratch. Both running Debian. I frequently used dmesg, no problems
observed. USB cables and HW works fine in various set-ups, as I use
them on day-to day basis.

Both hosts showed identical problems on build and deployment. I tried
both shared and static version - result is the same
FT_GetLatencyTimer() sucks and should not be used. I can only try
Amontec dongles, as I have no other.

While 0.4.16 works correctly (except build problems I mentioned
before, observed by many people and documented on the web), it is
showing same Error: couldn't read enough bytes from FT2232 device (0 <
5) as currrent libftdi. New D2XX corrects these problems, but
FT_GetLatencyTimer() has to be workarounded.

Do you have by any chance some Amontec dongle to try with Linux
(Windows plays no important role in the life of developer) ?

Brest regards,
Drasko

On Tue, Mar 29, 2011 at 12:54 PM, Mathias K. <[email protected]> wrote:
> Hello,
>
> i can't reproduce your errors. The libftdi and d2xx works like a charm here 
> (linux/windows). Error 4
> means IO Error. I think you have carefully check your USB cables and your 
> hardware. If you work with
> linux you can try "dmesg" to get some reports about hardware problems, 
> specially usb.
>
>
> Regards,
>
> Mathias
>
> Am 29.03.2011 12:37, schrieb Drasko DRASKOVIC:
>> Hi all,
>> commenting out FT_GetLatencyTimer() call seems to be a workaround :
>>
>>
>> #if 0
>>       if ((status = FT_GetLatencyTimer(ftdih, &latency_timer)) != FT_OK)
>>       {
>>               LOG_ERROR("unable to get latency timer: %lu", status);
>>               return ERROR_JTAG_INIT_FAILED;
>>       }
>>       else
>> #endif
>>       {
>>               latency_timer = 2;
>>               LOG_DEBUG("current latency timer: %i", latency_timer);
>>       }
>>
>> I have no idea why this function is not working.
>>
>> This workaround seems to be fixing
>> Error: couldn't read enough bytes from FT2232 device (0 < 5)
>> problem that I saw before with libftdi.
>>
>> However, more surprising are build problems with OpenOCD and D2XX
>> 1.0.4 that I described below.
>>
>> BR,
>> Drasko
>>
>> On Mon, Mar 28, 2011 at 4:07 PM, Drasko DRASKOVIC
>> <[email protected]> wrote:
>>> Hi all,
>>> I downloaded D2XX driver from here :
>>> http://www.ftdichip.com/Drivers/D2XX.htm. It is version 1.0.4 for
>>> Linux x86 (32-bit).
>>>
>>> I tried compiling OpenOCD with libftd2xx statically (which is by
>>> default). Configuration is failing with :
>>>
>>> checking uninstalled ftd2xx distribution...
>>> -L/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib
>>> /home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a
>>> checking whether ftd2xx library works... configure: error: Cannot
>>> build & run test program using ftd2xx.lib
>>>
>>> In config.log I saw :
>>>
>>> /home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(ftd2xx.o):
>>> In function `FTCommonOpen':
>>> /home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1654:
>>> undefined reference to `pthread_create'
>>> /home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1656:
>>> undefined reference to `pthread_create'
>>> /home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(ftd2xx.o):
>>> In function `FT_Close':
>>> /home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1812:
>>> undefined reference to `pthread_join'
>>> /home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1821:
>>> undefined reference to `pthread_join'
>>>
>>> So obviously it was missing libpthrads.
>>>
>>> After adding -lpthread to CFLAGS, there is another problem :
>>>
>>> /home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(linux_usbfs.o):
>>> In function `find_monotonic_clock':
>>> /home/madamson/Desktop/Mac-Linux
>>> sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:206: undefined
>>> reference to `clock_gettime'
>>> /home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(linux_usbfs.o):
>>> In function `op_clock_gettime':
>>> /home/madamson/Desktop/Mac-Linux
>>> sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:2146: undefined
>>> reference to `clock_gettime'
>>> /home/madamson/Desktop/Mac-Linux
>>> sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:2148: undefined
>>> reference to `clock_gettime'
>>>
>>> So librt is already missing, and I had to add -lrt also to CFLAGS.
>>>
>>> After this I was able to sucessfully compile OpenOCD with libftd2xx,
>>> with observation of warnings like this during compile :
>>>
>>>
>>> ft2232.c: In function ‘ft2232_write’:
>>> ft2232.c:512: warning: format ‘%lu’ expects type ‘long unsigned int’,
>>> but argument 6 has type ‘FT_STATUS’
>>> ft2232.c: In function ‘ft2232_read’:
>>> ft2232.c:555: warning: format ‘%lu’ expects type ‘long unsigned int’,
>>> but argument 6 has type ‘FT_STATUS’
>>> ft2232.c: In function ‘ft2232_init_ftd2xx’:
>>> ft2232.c:2194: warning: format ‘%lu’ expects type ‘long unsigned int’,
>>> but argument 6 has type ‘FT_STATUS’
>>> ft2232.c:2198: warning: format ‘%lu’ expects type ‘long unsigned int’,
>>> but argument 6 has type ‘FT_STATUS’
>>> ft2232.c:2214: warning: format ‘%lu’ expects type ‘long unsigned int’,
>>> but argument 6 has type ‘DWORD’
>>>
>>> Same kind of wornings are present when we compile libftd2xx as a shared 
>>> library.
>>>
>>> When I try to start newly compiled OpenOCD binary I am getting :
>>>
>>>
>>> Debug: 169 18 ft2232.c:2433 ft2232_init() 104248: ft2232 interface
>>> using shortest path jtag state transitions
>>> Debug: 170 18 ft2232.c:2133 ft2232_init_ftd2xx() 104248: 'ft2232'
>>> interface using FTD2XX with 'jtagkey' layout (0403:cff8)
>>> Error: 171 56 ft2232.c:2239 ft2232_init_ftd2xx() 137560: unable to get
>>> latency timer: 4
>>> Debug: 172 56 command.c:638 run_command() 137448: Command failed with
>>> error code -100
>>>
>>> Came behavior with libftd2xx as a shared lib.
>>>
>>> libftd2xx0.4.16 which I used before does not show this error (but has
>>> some other problems and that's why I want to replace it with new
>>> version or ideally Amontec officiel drivers).
>>>
>>> I am using Amontec JTAGKey2 probe. Since Officiel Amontec drivers are
>>> based on version 1.0.4 of D2XX I am getting exactly same error.
>>>
>>> What can be wrong here ?
>>>
>>> Best regards,
>>> Drasko
>>>
>> _______________________________________________
>> Openocd-development mailing list
>> [email protected]
>> https://lists.berlios.de/mailman/listinfo/openocd-development
>>
>
>
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to