linux/drivers/mtd/spi-nor
Tudor Ambarus 5390a8df76 mtd: spi-nor: add support to non-uniform SFDP SPI NOR flash memories
Based on Cyrille Pitchen's patch https://lkml.org/lkml/2017/3/22/935.

This patch is a transitional patch in introducing  the support of
SFDP SPI memories with non-uniform erase sizes like Spansion s25fs512s.
Non-uniform erase maps will be used later when initialized based on the
SFDP data.

Introduce the memory erase map which splits the memory array into one
or many erase regions. Each erase region supports up to 4 erase types,
as defined by the JEDEC JESD216B (SFDP) specification.

To be backward compatible, the erase map of uniform SPI NOR flash memories
is initialized so it contains only one erase region and this erase region
supports only one erase command. Hence a single size is used to erase any
sector/block of the memory.

Besides, since the algorithm used to erase sectors on non-uniform SPI NOR
flash memories is quite expensive, when possible, the erase map is tuned
to come back to the uniform case.

The 'erase with the best command, move forward and repeat' approach was
suggested by Cristian Birsan in a brainstorm session, so:

Suggested-by: Cristian Birsan <cristian.birsan@microchip.com>
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
2018-10-08 21:28:26 +02:00
..
aspeed-smc.c treewide: Use struct_size() for devm_kmalloc() and friends 2018-06-06 11:15:43 -07:00
atmel-quadspi.c mtd: spi-nor: atmel-quadspi: Include gpio/consumer.h instead of gpio.h 2018-08-01 09:27:23 +02:00
cadence-quadspi.c JFFS2 changes: 2018-08-14 10:57:44 -07:00
fsl-quadspi.c mtd: spi-nor: fsl-quadspi: add support for ls2080a/ls1080a 2018-05-18 13:12:53 +02:00
hisi-sfc.c mtd: spi-nor: hisi: Avoid generic function names 2018-04-20 22:54:36 +02:00
intel-spi-pci.c mtd: intel-spi: Add Intel Lewisburg PCH SPI super SKU PCI ID 2017-10-30 11:51:18 +01:00
intel-spi-platform.c spi-nor: Add support for Intel SPI serial flash controller 2017-01-03 17:33:36 +00:00
intel-spi.c mtd: spi-nor: intel-spi: use mtd_device_register() 2018-08-01 09:18:55 +02:00
intel-spi.h spi-nor: Add support for Intel SPI serial flash controller 2017-01-03 17:33:36 +00:00
Kconfig Core changes: 2018-06-07 22:53:15 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mtk-quadspi.c mtd: mtk-nor: modify functions' name more generally 2018-01-14 16:14:06 +01:00
nxp-spifi.c mtd: spi-nor: nxp-spifi: release flash_np in nxp_spifi_probe() 2018-06-22 00:26:06 +02:00
spi-nor.c mtd: spi-nor: add support to non-uniform SFDP SPI NOR flash memories 2018-10-08 21:28:26 +02:00
stm32-quadspi.c mtd: spi-nor: stm32-quadspi: replace "%p" with "%pK" 2018-08-01 09:18:55 +02:00