u-boot-brain/drivers
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
..
adc sandbox: add ADC driver 2015-11-02 10:38:00 +09:00
bios_emulator biosemu: Do not free vga_info->BIOSImage when it is 0xc0000 2015-04-29 18:51:49 -06:00
block Move ALLOC_CACHE_ALIGN_BUFFER() to the new memalign.h header 2015-09-11 17:15:20 -04:00
bootcount qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
clk rockchip: rk3288: Add clock driver 2015-09-02 21:28:23 -06:00
core Merge branch 'master' of git://git.denx.de/u-boot-net 2015-10-29 16:30:33 -04:00
cpu x86: Move MP initialization codes into a common place 2015-07-14 18:03:16 -06:00
crypto crypto/fsl: SEC driver cleanup for 64 bit and endianness 2015-10-29 10:33:57 -07:00
ddr drivers/ddr/fsl_ddr: Make SR_IE configurable 2015-10-30 09:19:41 -07:00
demo drivers: hierarchize drivers Kconfig menu 2015-08-12 20:47:44 -04:00
dfu dfu: dfu_sf: Pass duplicate devstr to parse_dev 2015-11-03 17:29:33 +01:00
dma dma: keystone_nav: Fix linkram size 2015-10-22 14:22:22 -04:00
fpga arm: socfpga: Fix FPGA bitstream programming routine 2015-08-08 14:14:04 +02:00
gpio nios2 : convert altera_pio to driver model 2015-10-23 07:37:03 +08:00
hwmon Fix bad return value checks (detected with Coccinelle) 2015-10-24 13:50:30 -04:00
i2c Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq 2015-10-30 12:56:58 -04:00
input video: Drop DEV_FLAGS_SYSTEM flag 2015-11-05 08:22:21 +01:00
led dm: led: Tidy up SPL options for the led and led-gpio 2015-09-02 21:28:22 -06:00
memory ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00
misc Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq 2015-10-30 12:56:58 -04:00
mmc Merge git://git.denx.de/u-boot-samsung 2015-11-05 07:46:45 -05:00
mtd sf: Add SPI NOR protection mechanism 2015-11-05 16:47:06 -05:00
net video: Drop DEV_FLAGS_SYSTEM flag 2015-11-05 08:22:21 +01:00
pci armv8/fsl_lsch3: Change arch to fsl-layerscape 2015-10-29 10:34:00 -07:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
pinctrl ARM: uniphier: rename CONFIG_MACH_* to CONFIG_ARCH_UNIPHIER_* 2015-09-25 00:27:53 +09:00
power dm: regulator: add function device_get_supply_regulator() 2015-11-02 10:38:00 +09:00
pwm pwm: imx: Remove unreachable code 2015-05-26 14:13:12 +02:00
qe driver/qe: use strncpy instead of strcpy 2015-08-03 12:06:36 -07:00
ram ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM 2015-08-18 13:46:02 -04:00
remoteproc remoteproc: Introduce a sandbox dummy driver 2015-10-22 14:18:39 -04:00
rtc rtc: Add MCP79411 support to DS1307 rtc driver 2015-11-04 15:19:12 -08:00
serial arm: zynq: Move serial driver to driver model 2015-11-04 14:49:53 +01:00
soc soc: keystone_serdes: generalize configuration mechanism 2014-10-23 11:27:28 -04:00
sound of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
spi spi: cadence_qspi: Ensure check for max frequency in place 2015-11-05 02:34:15 +01:00
thermal thermal: imx_thermal: Do not print on error 2015-09-13 10:49:21 +02:00
timer nios2: convert altera timer to driver model 2015-10-23 07:37:03 +08:00
tpm dm: tpm: Drop CONFIG_DM_TPM 2015-10-23 09:42:28 -06:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb usb: udc: Fix warnings on 64-bit builds 2015-11-03 17:29:54 +01:00
video video: Drop DEV_EXT_VIDEO flag 2015-11-05 08:24:42 +01:00
watchdog ls102xa: Fix reset hang 2015-10-12 12:56:32 -04:00
Kconfig dm: adc: add simple ADC uclass implementation 2015-11-02 10:38:00 +09:00
Makefile dm: adc: add simple ADC uclass implementation 2015-11-02 10:38:00 +09:00