How can a corrupted boot EEPROM (Large EEPROM, C2 Load) connected to FX2LP be recovered?
FX2LP can be booted in three ways:
- Over USB
- C0 Load (Using a small EEPROM)
- C2 Load (Using a large EEPROM containing the firmware)
Note: This KBA addresses the EEPROM recovery when the FX2LP is subjected to a C2 load (Using a large EEPROM).
When using a large EEPROM boot, there can be a situation where the EEPROM contents are changed or crashed. This can cause the device to be shown as an ‘Unknown device’ every time it is plugged in. This situation can be recovered if the I2C SDA and SCL lines are brought out:
- Connect the I2C SCL and SDA lines to a small EEPROM (maybe on the CY3684 DVK or any other external board with a suitable EEPROM) with the address lines shorted to GND (A2A1A0 – 000).
- Load the small EEPROM with proper values (First byte being C0).
Now, when the device is connected to the USB host, FX2LP first looks for a small EEPROM and if it finds an EEPROM with C0 as its first byte, the FX2LP will load the data from the small EEPROM and the large EEPROM will not be considered. Once the device comes up in the host PC, the large EEPROM contents can be modified using the Cypress USB Control Center.