This driver for MT29FxG01 Serial NAND flash is designed as part of HCC's SafeFLASH file system. SafeFLASH guarantees a defined level of fail-safety (see the SafeFLASH File System User Guide). For the system to be able to guarantee fail-safety, each component must provide a defined quality of service.
For this driver the following must be guaranteed to ensure the system is fail-safe:
- All write operations must be committed to flash in the sequence in which they are provided to the driver.
- Any write operation that fails must return an error.
- Any erase operation that fails must return an error.
- The system must ensure that there is at most one partially complete write or erase operation. At this point the file system should be restarted so that it can be recovered.
To achieve this, the hardware should ensure that, in the event of a falling voltage approaching the specified minimum programming level of the flash, the system either resets or provides a signal to the software to block access to the flash.
An alternative solution is to add capacitance to the design. This must provide sufficient power that, after a hardware error or reset condition is detected, the active operation on the flash can be completed.
Only by using one of these techniques can the system guarantee correct operation even after an unexpected system reset.