libftdi Archives

Subject: Re: [PATCH] FT232R and FT245R EEPROM user area size check

From: Robin Haberkorn <haberkorn@xxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Thu, 15 Jan 2015 22:50:46 +0100
Hi Jim,

On 15.01.2015 02:35, Jim Paris wrote:
Hi Robin,

See doc/EEPROM-structure, and git commit a45ea32b4ffd.  I believe the
existing code intentionally goes against what AN_121 describes, as
written in that doc.

After some investigation, I think there's a misunderstanding.
Yes, it appears as if 4 bytes after the serial number are reserved. This means that the statement in AN121 "Start Address = the address following the last byte of SerialNumber string." is wrong.

However, I think there's still 96 bytes of user area since it all adds up nicely -- the 4 extra bytes appear to be aken care of arleady in the 48 word user area as stated by AN121.
There are 128 bytes of internal EEPROM in total (AN121).
The descriptive strings begin at byte 0x1C (=28) in the EEPROMs I have at hand (both written with FTProg and ftdi_eeprom).

28 + 48*2 + 4 = 128

Also I found out about this because I wanted to reproduce an EEPROM written originally with FT Prog using ftdi_eeprom. The strings initially written by FT Prog (45 characters) turned out to be 1 character (2 bytes) too long for libftdi's userarea space check (which was 88 bytes = 44 words).

With "FT Prog" I can write up to 48 characters which is exactly what AN121 states. If "FT Prog" (which I assume is based on FTD2XX) doesn't get it right, who does?

Either way, the _230X is decribed in its datasheet sa having an
identical EEPROM structure as the _R, so any patch that treats them
differently is probably not correct.

You mean this datasheet:
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT230X.pdf

It does not say its EEPROM/MTP layout is identical to type-R chips.
It does say:
"The MTP memory on all FT-X devices can be programmed over USB. This method is the same as for the EEPROM on other FTDI devices such as the FT232R." (p.33)

It does not give any details about the EEPROM/MTP memory layout, not to mention about the available user area space.

Perhaps the other chip's user area space checks in libftdi should also be reviewed, based on what "FT Prog" or FT_EE_UASize() reports.


Jim


Best regards,
Robin

--
Robin Haberkorn
Developer

metraTec GmbH
Werner-Heisenberg-Str. 1
39106 Magdeburg
Germany

haberkorn@xxxxxxxxxxxx
www.metratec.com

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
Current Thread