On the hardware we want to replace the obsolete S29GL01GP11TFIR2 device with the S29GL01GT10TFI020 flash device. Both flash devices are tested with a script running on Linux (version 2.6.29) which continuously erases/writes and verifies the write with read actions. On the S29GL01GP we have seen no issues with the script running for multiple hours (on -40 to +85 degrees Celsius). The S29GL01GT flash device works fine on +25 degrees and +85 degrees Celsius, we experience problems with the ready/busy status readout during the erase command on lower temperatures (-40 degrees Celsius). The ready/busy seems to indicate "ready" but the erase command is not completed. On the hardware we have two S29GL01GT NOR flash devices connected to a local bus which both show the issue.
The Linux driver initiate a sector erase command and waits until the erase is finished by reading the toggle bit status. The Linux driver implementation is according to the data polling sequence illustrated in Figure 7 (S29GL01GT datasheet). When two consecutive reads have the same value the erase status is considered "ready". As a last check the driver reads the first word of the sector (driver used in word mode). When this is not 0xFFFF the last byte is not erased and the driver reports an error (MTD Erase failure: Input/output error). We have tried relaxing the read and write timing settings by adding more delay between read/write cycles, but unfortunately with no success.
Single erase status fail:
Reading the ready/busy status continuously the polling bit value is 0xD508 (third read of the data polling register). The bit toggling has stopped and the erase command should be ready. The S29GL01GT features the status register as another way for getting the FLASH state. If the status register value is read directly after the polling bit value is read the value is: 0x1000 indicating that the erase is not completed. The status register should be 0xXX80, indicating that the flash is done. The ready/busy polling mechanism is not working correctly.
Is the polling mechanism tested on lower temperatures? Is this a known issue with the S29GL01GT10TFI020 Flash device? Are there difference in production revision which could have differences in behavior?