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.kshevets...@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 >