• Fabio Estevam's avatar
    sf: Add SPI NOR protection mechanism · c3c016cf
    Fabio Estevam authored
    Many SPI flashes have protection bits (BP2, BP1 and BP0) in the
    status register that can protect selected regions of the SPI NOR.
    
    Take these bits into account when performing erase operations,
    making sure that the protected areas are skipped.
    
    Tested on a mx6qsabresd:
    
    => sf probe
    SF: Detected M25P32 with page size 256 Bytes, erase size 64 KiB, total 4 MiB
    => sf protect lock  0x3f0000 0x10000
    => sf erase 0x3f0000 0x10000
    offset 0x3f0000 is protected and cannot be erased
    SF: 65536 bytes @ 0x3f0000 Erased: ERROR
    => sf protect unlock  0x3f0000 0x10000
    => sf erase 0x3f0000 0x10000
    SF: 65536 bytes @ 0x3f0000 Erased: OK
    Signed-off-by: 's avatarFabio Estevam <fabio.estevam@freescale.com>
    [re-worked to fit the lock common to dm and non-dm]
    Signed-off-by: 's avatarJagan Teki <jteki@openedev.com>
    Reviewed-by: 's avatarTom Rini <trini@konsulko.com>
    Reviewed-by: 's avatarHeiko Schocher <hs@denx.de>
    Reviewed-by: 's avatarJagan Teki <jteki@openedev.com>
    c3c016cf
cmd_sf.c 14.5 KB