[PATCH v5 00/21] mtd: spinand: driver improvements
Mikhail Kshevetskiy
mikhail.kshevetskiy at iopsys.eu
Thu Aug 14 01:42:53 CEST 2025
This patch series makes u-boot SPI NAND driver almost the same as in
linux-6.17-rc1. This provides the following improvements:
* it becomes easy to port changes from linux kernel
* more flash is supported
* spi drivers can accelerate flash reading/writing using spi-mem dirmap API
* continuous reading mode was supported (for some flashes)
* OTP support was added (for some flashes)
* add support of special data recovery reading (for some flashes)
* bug fixes
* other minor improvements
The following linux kernel driver features was not implemented
* support of different ECC engines
* per operation maximum spi bus frequency
The code has been tested on Airoha AN7581 (64-bit) based boards
equipped with flash memory Micron MT29F2G01ABAGD
Changes v2:
* update patch description
* add fixes for continuous reading mode
Changes v3:
* fix duplication in patch description
* add more information about commits ported from linux kernel
Changes v4:
* the original authorship was preserved for several patches
* the code was synced with the latest shapshot of future linux-6.17-rc1
* spi-nand was replaced by spinand in patch description
* continuous reading mode fixes were updated
Changes v5:
* add missed SoB tags
* improve patch messages
* add tags for patches ported from linux
* drop continuous mode fixes (will be sent after corresponding linux fixes)
Alexander Lobakin (1):
mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
Cheng Ming Lin (2):
mtd: spinand: Add support for setting plane select bits
mtd: spinand: Add read retry support
Daniel Golle (1):
mtd: spinand: set bitflip_threshold to 75% of ECC strength
Gabor Juhos (1):
mtd: spinand: propagate spinand_wait() errors from
spinand_write_page()
Mikhail Kshevetskiy (12):
spi: spi-mem: Extend SPI MEM ops to match Linux 6.16
mtd: spinand: Use the spi-mem dirmap API
mtd: spinand: Extend spinand_wait() to match Linux kernel
implementation
mtd: spinand: Make use of spinand_to_[mtd/nand]() helpers
mtd: spinand: Align logic for enabling ECC to match Linux kernel
mtd: spinand: Refactor spinand_init* functions
mtd: spinand: Refactor ECC/OOB functions
mtd: spinand: Sync core code and device support with Linux 6.10
mtd: spinand: add support of continuous reading mode
mtd: spinand: add OTP support
mtd: spinand: Enhance the logic when picking a variant
mtd: spinand: Sync core code and device support with Linux 6.17-rc1
Miquel Raynal (2):
mtd: nand: Add a NAND page I/O request type
mtd: spinand: Add a ->configure_chip() hook
Takahiro Kuwano (2):
mtd: spinand: Remove write_enable_op() in markbad()
mtd: spinand: Introduce a way to avoid raw access
drivers/mtd/nand/spi/Makefile | 5 +-
drivers/mtd/nand/spi/alliancememory.c | 155 +++++
drivers/mtd/nand/spi/ato.c | 88 +++
drivers/mtd/nand/spi/core.c | 931 ++++++++++++++++++--------
drivers/mtd/nand/spi/esmt.c | 123 +++-
drivers/mtd/nand/spi/foresee.c | 107 +++
drivers/mtd/nand/spi/gigadevice.c | 86 ++-
drivers/mtd/nand/spi/macronix.c | 289 ++++++--
drivers/mtd/nand/spi/micron.c | 180 ++++-
drivers/mtd/nand/spi/otp.c | 369 ++++++++++
drivers/mtd/nand/spi/paragon.c | 24 +-
drivers/mtd/nand/spi/skyhigh.c | 149 +++++
drivers/mtd/nand/spi/toshiba.c | 63 +-
drivers/mtd/nand/spi/winbond.c | 361 +++++++++-
drivers/mtd/nand/spi/xtx.c | 20 +-
drivers/spi/spi-mem.c | 45 +-
include/linux/mtd/nand.h | 157 ++++-
include/linux/mtd/spinand.h | 374 +++++++++--
include/spi-mem.h | 93 ++-
19 files changed, 3110 insertions(+), 509 deletions(-)
create mode 100644 drivers/mtd/nand/spi/alliancememory.c
create mode 100644 drivers/mtd/nand/spi/ato.c
create mode 100644 drivers/mtd/nand/spi/foresee.c
create mode 100644 drivers/mtd/nand/spi/otp.c
create mode 100644 drivers/mtd/nand/spi/skyhigh.c
--
2.50.1
More information about the U-Boot
mailing list