September 26, 2011
After an on-the-fly eeprom firmware updation, how can I reboot FX2LP from it without a hardware reset?
Please be aware that a soft reset cannot reinitialize the I2C boot loader to reload the firmware from EEPROM to the RAM.Only a power-on-rest can reinitialize the I2C controller block and cause the firmware to be reloaded from the EEPROM. Here are a few alternate suggestions we can provide you:
1. Through your host application, make the necessary firmware modifications and update it in your EEPROM through vendor commands. For doing this, you need to have a vendor command defined in your firmware which can write into the interfaced EEPROM. Please refer to the Vend_Ax example included in the CY3684 DVK which contains vendor command routines to read and write to EEPROM. Once this is completed, use the A0 vendor command to reset the cpu by writing into the CPUCS register.Now, update the same firmware in RAM using A0 vendor commands and bring the CPU out of reset by writing into the CPUCS register again.This will cause the CPU to start executing your new firmware.
2. Another option you can consider is using an external chip to reset FX2LP after the firmware in EEPROM is updated. The external chip should continuously be signalled from FX2LP(for example. through the toggling of a GPIO). As soon as the updated firmware is downloaded to the EEPROM, FX2LP can stop signalling and the external chip will reset FX2LP.