All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 00/24]  mtd: spinand: driver improvements
@ 2025-09-30  0:20 Mikhail Kshevetskiy
  2025-09-30  0:20 ` [PATCH v7 01/24] spi: spi-mem: Extend SPI MEM ops to match Linux 6.16 Mikhail Kshevetskiy
                   ` (25 more replies)
  0 siblings, 26 replies; 28+ messages in thread
From: Mikhail Kshevetskiy @ 2025-09-30  0:20 UTC (permalink / raw)
  To: Tom Rini, Dario Binacchi, Michael Trimarchi, Frieder Schrempf,
	Jagan Teki, Miquel Raynal, Takahiro Kuwano, Cheng Ming Lin,
	Chuanhong Guo, Christian Marangi, Boris Brezillon, Alexander Dahl,
	u-boot
  Cc: Mikhail Kshevetskiy, Andreas Gnau

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


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2025-10-05 18:19 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30  0:20 [PATCH v7 00/24] mtd: spinand: driver improvements Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 01/24] spi: spi-mem: Extend SPI MEM ops to match Linux 6.16 Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 02/24] mtd: spinand: Use the spi-mem dirmap API Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 03/24] mtd: nand: Add a NAND page I/O request type Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 04/24] mtd: spinand: core: add missing MODULE_DEVICE_TABLE() Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 05/24] mtd: spinand: Extend spinand_wait() to match Linux kernel implementation Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 06/24] mtd: spinand: Make use of spinand_to_[mtd/nand]() helpers Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 07/24] mtd: spinand: Align logic for enabling ECC to match Linux kernel Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 08/24] mtd: spinand: Refactor spinand_init* functions Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 09/24] mtd: spinand: Refactor ECC/OOB functions Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 10/24] mtd: spinand: Sync core code and device support with Linux 6.10 Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 11/24] mtd: spinand: set bitflip_threshold to 75% of ECC strength Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 12/24] mtd: spinand: Add support for setting plane select bits Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 13/24] mtd: spinand: Remove write_enable_op() in markbad() Mikhail Kshevetskiy
2025-09-30  0:20 ` [PATCH v7 14/24] mtd: spinand: Introduce a way to avoid raw access Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 15/24] mtd: spinand: add support of continuous reading mode Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 16/24] mtd: spinand: Add read retry support Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 17/24] mtd: spinand: add OTP support Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 18/24] mtd: spinand: Enhance the logic when picking a variant Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 19/24] mtd: spinand: propagate spinand_wait() errors from spinand_write_page() Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 20/24] mtd: spinand: Add a ->configure_chip() hook Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 21/24] mtd: spinand: Sync core code and device support with Linux 6.17-rc1 Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 22/24] mtd: spinand: fix direct mapping creation sizes Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 23/24] mtd: spinand: try a regular dirmap if creating a dirmap for continuous reading fails Mikhail Kshevetskiy
2025-09-30  0:21 ` [PATCH v7 24/24] mtd: spinand: repeat reading in regular mode if " Mikhail Kshevetskiy
2025-09-30  8:18 ` [PATCH v7 00/24] mtd: spinand: driver improvements Miquel Raynal
2025-09-30  8:19 ` Michael Nazzareno Trimarchi
2025-10-05 18:19   ` Mikhail Kshevetskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.