Hello Uwe,
one more code piece to examine:
int ftdi_read_eeprom(struct ftdi_context *ftdi)
{
int i;
unsigned char *buf;
if (ftdi == NULL || ftdi->usb_dev == NULL)
ftdi_error_return(-2, "USB device unavailable");
buf = ftdi->eeprom->buf;
for (i = 0; i < FTDI_MAX_EEPROM_SIZE/2; i++)
{
if (libusb_control_transfer(
ftdi->usb_dev,
FTDI_DEVICE_IN_REQTYPE,SIO_READ_EEPROM_REQUEST, 0, i,
buf+(i*2), 2, ftdi->usb_read_timeout) != 2)
ftdi_error_return(-1, "reading eeprom failed");
...
}
This looks wrong for 93x46 eeproms / older chips
as FTDI_MAX_EEPROM_SIZE is 256 (0x100).
This used to be "eeprom->size/2". Any reason you changed that?
There's also (old) code to guess the eeprom size.
Maybe we shouldn't do that anyway.
Thomas
--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
|