[PATCH v3 00/22] mtd: spi-nand: driver improvements

Peter Robinson pbrobinson at gmail.com
Tue Aug 5 10:32:57 CEST 2025


Hi Mikhail,

Please leave some time between posting large versions of patches to
allow review.

Peter

On Tue, 5 Aug 2025 at 09:25, Mikhail Kshevetskiy
<mikhail.kshevetskiy at iopsys.eu> wrote:
>
> This patch series makes u-boot spinand driver almost the same as spinand
> driver from linux-6.16-rc6. 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
> * OTP support was added
> * add support of special data recovery reading (for some flashes)
> * bugfixes
> * other minor improvements
>
> The following linux kernel driver features was not implemented
>
> * support of different ECC engines
> * per operation spi bus frequency
>
> The patchset also includes fixes for continuous reading mode.
> The similar patches were sent to upstream linux kernel.
>
> 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
>
> Mikhail Kshevetskiy (22):
>   spi-mem: sync a bit with linux-6.16-rc6
>   mtd: spinand: Use the spi-mem dirmap API
>   mtd: spinand: Add a NAND page I/O request type
>   mtd: spinand: add missing MODULE_DEVICE_TABLE()
>   mtd: spinand: simulate behavior of linux's function spinand_wait()
>   mtd: spinand: more use of spinand_to_{something} helpers
>   mtd: spinand: replace enable_ecc variable with disable_ecc and update
>     corresponding logic
>   mtd: spinand: minor refactoring
>   mtd: spinand: more refactoring
>   mtd: spinand: sync code with linux-6.10
>   mtd: spinand: set bitflip_threshold to 75% of ECC strength
>   mtd: spinand: Add support for setting plane select bits
>   mtd: spinand: Remove write_enable_op() in markbad()
>   mtd: spinand: Introduce a way to avoid raw access
>   mtd: spinand: add support of continuous reading mode
>   mtd: spinand: Add read retry support
>   mtd: spinand: add OTP support
>   mtd: spinand: Enhance the logic when picking a variant
>   mtd: spinand: sync with linux-6.16-rc6
>   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
>
>  drivers/mtd/nand/spi/Makefile         |   5 +-
>  drivers/mtd/nand/spi/alliancememory.c | 155 +++++
>  drivers/mtd/nand/spi/ato.c            |  84 +++
>  drivers/mtd/nand/spi/core.c           | 937 +++++++++++++++++++-------
>  drivers/mtd/nand/spi/esmt.c           | 123 +++-
>  drivers/mtd/nand/spi/foresee.c        | 107 +++
>  drivers/mtd/nand/spi/gigadevice.c     |  66 +-
>  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        |  20 +-
>  drivers/mtd/nand/spi/skyhigh.c        | 149 ++++
>  drivers/mtd/nand/spi/toshiba.c        |  63 +-
>  drivers/mtd/nand/spi/winbond.c        | 228 ++++++-
>  drivers/mtd/nand/spi/xtx.c            |  20 +-
>  drivers/spi/spi-mem.c                 |  45 +-
>  include/linux/mtd/nand.h              | 157 ++++-
>  include/linux/mtd/spinand.h           | 342 +++++++++-
>  include/spi-mem.h                     |  93 ++-
>  19 files changed, 2936 insertions(+), 496 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.47.2
>


More information about the U-Boot mailing list