[PATCH v7 00/24] mtd: spinand: driver improvements

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Tue Sep 30 10:19:50 CEST 2025


Hi all

On Tue, Sep 30, 2025 at 2:21 AM Mikhail Kshevetskiy
<mikhail.kshevetskiy at iopsys.eu> wrote:
>
> This patch series makes u-boot SPI NAND driver almost the same as in
> linux-6.17. 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
>
> Additionally the patch series includes continuous reading mode fixes.
> The corresponding linux patches were accepted to nand/next branch
> of mtd/linux.git repository.
>
> 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)
>
> Changes v6:
>  * improve patch messages
>
> Changes v7:
>  * patches to fix continuous reading mode was added.
>
> 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 (15):
>   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
>   mtd: spinand: fix direct mapping creation sizes
>   mtd: spinand: try a regular dirmap if creating a dirmap for continuous
>     reading fails
>   mtd: spinand: repeat reading in regular mode if continuous reading
>     fails
>
> 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           | 975 +++++++++++++++++++-------
>  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, 3154 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.51.0
>

Long queue but I will pick them today, together with mtd patches

Michael

-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com


More information about the U-Boot mailing list