Message ID | 20190717084745.19322-6-tudor.ambarus@microchip.com |
---|---|
State | Changes Requested |
Delegated to: | Vignesh R |
Headers | show |
Series | mtd: spi-nor: write protection at power-up | expand |
On 07/17/2019 11:48 AM, Tudor Ambarus - M18064 wrote: > From: Tudor Ambarus <tudor.ambarus@microchip.com> > > Some spi-nor flashes come write protected by default after a > power-on sequence to avoid destructing commands (erase, write) > during power-up. > > Backward compatibility imposes to disable the write protection > at power-up by default. Add a Kconfig option to let the user > benefit of the power-up write protection. > > Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> > --- > drivers/mtd/spi-nor/Kconfig | 8 ++++++++ > drivers/mtd/spi-nor/spi-nor.c | 2 ++ > 2 files changed, 10 insertions(+) I'll have to mark spi_nor_spansion_clear_sr_bp() and spi_nor_unlock_global_block_protection() definitions as __maybe_unused. drivers/mtd/spi-nor/spi-nor.c:1729:12: warning: ‘spi_nor_unlock_global_block_protection’ defined but not used [-Wunused-function] static int spi_nor_unlock_global_block_protection(struct spi_nor *nor) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/spi-nor/spi-nor.c:1687:12: warning: ‘spi_nor_spansion_clear_sr_bp’ defined but not used [-Wunused-function] static int spi_nor_spansion_clear_sr_bp(struct spi_nor *nor) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig index 6de83277ce8b..b550e10657f1 100644 --- a/drivers/mtd/spi-nor/Kconfig +++ b/drivers/mtd/spi-nor/Kconfig @@ -22,6 +22,14 @@ config MTD_SPI_NOR_USE_4K_SECTORS Please note that some tools/drivers/filesystems may not work with 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). +config MTD_SPI_NOR_DISABLE_POWER_UP_WRITE_PROTECTION + bool "Disable write protection during power-up" + default y + help + Some spi-nor flashes are write protected by default after a power-on + reset cycle, in order to avoid inadvertend writes during power-up. + Disable the write protection during power-up. + config SPI_ASPEED_SMC tristate "Aspeed flash controllers in SPI mode" depends on ARCH_ASPEED || COMPILE_TEST diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index ffb53740031c..e5627fa6b1cd 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -4049,6 +4049,7 @@ static int spi_nor_init(struct spi_nor *nor) { int err; +#ifdef CONFIG_MTD_SPI_NOR_DISABLE_POWER_UP_WRITE_PROTECTION /* * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up * with the software protection bits set. @@ -4082,6 +4083,7 @@ static int spi_nor_init(struct spi_nor *nor) return err; } } +#endif if (nor->quad_enable) { err = nor->quad_enable(nor);