u-boot/drivers/mtd
Fabio Estevam c3c016cf75 sf: Add SPI NOR protection mechanism
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: Fabio Estevam <fabio.estevam@freescale.com>
[re-worked to fit the lock common to dm and non-dm]
Signed-off-by: Jagan Teki <jteki@openedev.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Jagan Teki <jteki@openedev.com>
2015-11-05 16:47:06 -05:00
..
nand Merge branch 'master' of git://www.denx.de/git/u-boot-imx 2015-10-15 08:43:38 -04:00
onenand mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
spi sf: Add SPI NOR protection mechanism 2015-11-05 16:47:06 -05:00
ubi compat: Remove is_power_of_2() definition 2015-11-05 16:46:59 -05:00
at45.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cfi_flash.c cfi_flash: use specific width types for cword 2015-10-27 11:51:53 +01:00
cfi_mtd.c mtd, cfi, ubi: add missing writebufsize initialization 2014-11-19 07:54:04 +01:00
dataflash.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ftsmc020.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
jedec_flash.c mtd: Handle 29LV800BT 2014-11-19 08:48:41 +01:00
Kconfig dm: Expand and complete Kconfig in drivers/ 2015-02-12 10:35:33 -07:00
Makefile mtd, nand: Move common functions from cmd_nand.c to common place 2015-06-30 00:40:11 +05:30
mtd_uboot.c mtd: fix false positive "Offset exceeds device limit" error 2015-07-10 09:38:50 -04:00
mtdconcat.c kbuild: force to define __UBOOT__ in all the C sources 2014-09-16 12:23:56 -04:00
mtdcore.c compat: Remove is_power_of_2() definition 2015-11-05 16:46:59 -05:00
mtdcore.h mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
mtdpart.c mtd: Introduce mtd_block_isreserved() 2015-08-25 22:53:57 -05:00
mw_eeprom.c Update i386 code (sc520_cdp) 2008-09-09 11:48:53 +02:00
st_smi.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00