Hi,

I found some odd things in ft2232.c when it is built with FT2232H/FT4232H 
support :

1. It can only be built with the FTD2XX driver. libftdi supports 
FT2232H/FT4232H
since version 0.16

2. A speed value of 0 is used as a RTCK request indicator. This clashes 
with the
valid clock division value 0 that provide the highest fixed clock 
frequency.

3. The ft2232_speed_div function return the maximum selectable frequency 
(30MHz)
when RTCK is activated. It should return 0.

4. The ft2232_khz function return ERROR_OK when RTCK is requested even for
devices lacking RTCK support. It should return ERROR_FAIL so the upper 
driver layers
can detect this and try to fallback to a fixed frequency.

5. FT2232H/FT4232H have a backward compatibility function that divide the 
clock
by 5 to get the same frequency range as FT2232D. There is no code that 
disable
this functionality. I can not find anything about if this is enabled or 
disabled by default.
I think it is safest to actively disable it.

The following patches is attached:

p0_ft2232.patch
Fixes item 1-5 above

p1_readme_configure.patch
Add test of libftdi for FT2232H/FT4232H support (version => 0.16)

p2_readme_ft2232_configure.patch
Renames the enable-ftd2xx-highspeed configure option to 
enable-ft2232-highspeed
because builds with libftdi are also supported. The BUILD_FTD2XX_HIGHSPEED
macro is renamed to BUILD_FT2232_HIGHSPEED for the same reason.

p3_ft2232.patch
Minimizes the conditional compiling that is dependent on the
BUILD_FT2232_HIGHSPEED macro.

I have tested both a libftdi and a FTD2XX build on a FT2232D (only a full 
speed chip)
equipped interface.
I have no acces to a FT2232H/FT4232H interface, so none tests have been 
done for
these devices.

The enable-ft2232-highspeed configure option could be removed so highspeed
inclusion is only dependent on the FT2232H/FT4232H support check of 
libftdi/FTD2XX.
This should be done after the code have been tested on a FT2232H/FT4232H 
interface.

Best regards
Jonas Hörberg

Attachment: p0_ft2232.patch
Description: Binary data

Attachment: p1_readme_configure.patch
Description: Binary data

Attachment: p2_readme_ft2232_configure.patch
Description: Binary data

Attachment: p3_ft2232.patch
Description: Binary data

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to