• A
    mtd: spi-nor: Recover from Spansion/Cypress errors · c4b3eacc
    Alexander Sverdlin 提交于
    S25FL{128|256|512}S datasheets say:
    "When P_ERR or E_ERR bits are set to one, the WIP bit will remain set to
    one indicating the device remains busy and unable to receive new operation
    commands. A Clear Status Register (CLSR) command must be received to return
    the device to standby mode."
    
    Current spi-nor code works until first error occurs, but write/erase errors
    are not just rare hardware failures, they also occur if user tries to flash
    write-protected areas. After such attempt no SPI command can be executed
    any more and even read fails. This patch adds support for P_ERR and E_ERR
    bits in Status Register 1 (so that operation fails immediately and not
    after a long timeout) and proper recovery from the error condition.
    
    Tested on Spansion S25FS128S, which is supported by S25FL129P entry.
    Signed-off-by: NAlexander Sverdlin <alexander.sverdlin@nokia.com>
    Signed-off-by: NCyrille Pitchen <cyrille.pitchen@wedev4u.fr>
    c4b3eacc
spi-nor.c 80.2 KB