<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/mtd/nand/spi, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2026-03-04T12:21:29Z</updated>
<entry>
<title>mtd: spinand: Disable continuous read during probe</title>
<updated>2026-03-04T12:21:29Z</updated>
<author>
<name>David LaPorte</name>
<email>dalaport@amazon.com</email>
</author>
<published>2026-01-30T01:33:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=226722b40fe0455c574519b815e653e1b069b5a6'/>
<id>urn:sha1:226722b40fe0455c574519b815e653e1b069b5a6</id>
<content type='text'>
[ Upstream commit b4af7d194dc879353829f3c56988a68fbba1fbdd ]

Macronix serial NAND devices with continuous read support do not
clear the configuration register on soft reset and lack a hardware
reset pin. When continuous read is interrupted (e.g., during reboot),
the feature remains enabled at the device level.

With continuous read enabled, the OOB area becomes inaccessible and
all reads are instead directed to the main area. As a result, during
partition allocation as part of MTD device registration, the first two
bytes of the main area for the master block are read and indicate that
the block is bad. This process repeats for every subsequent block for
the partition.

All reads and writes that reference the BBT find no good blocks and
fail.

The only paths for recovery from this state are triggering the
continuous read feature by way of raw MTD reads or through a NAND
device power drain.

Disable continuous read explicitly during spinand probe to ensure
quiescent feature state.

Fixes: 631cfdd0520d ("mtd: spi-nand: Add continuous read support")
Cc: stable@vger.kernel.org
Signed-off-by: David LaPorte &lt;dalaport@amazon.com&gt;
Reviewed-by: Gunnar Kudrjavets &lt;gunnarku@amazon.com&gt;
Reviewed-by: Mikhail Kshevetskiy &lt;mikhail.kshevetskiy@iopsys.eu&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>Revert "mtd: spinand: esmt: fix id code for F50D1G41LB"</title>
<updated>2025-12-16T08:08:28Z</updated>
<author>
<name>Ziyang Huang</name>
<email>hzyitc@outlook.com</email>
</author>
<published>2025-12-02T15:05:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f6d2c8d9ac05a7a1c02333f6ad30868246880d8'/>
<id>urn:sha1:2f6d2c8d9ac05a7a1c02333f6ad30868246880d8</id>
<content type='text'>
This reverts commit dd26402642a0899fde59ea6b0852fad3d799b4cc.

The issue George met is due to the limit of QPIC, not the issue of the
flash chip.

QPIC only supports 4 bytes ID. So the fifth byte is always 0.

If we use spi-gpio, the fifth byte can be read correctly.

Signed-off-by: Ziyang Huang &lt;hzyitc@outlook.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'mtd/for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux</title>
<updated>2025-12-04T19:07:46Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2025-12-04T19:07:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=edd2b9832d604a234b60a4910c7496f351cd1e12'/>
<id>urn:sha1:edd2b9832d604a234b60a4910c7496f351cd1e12</id>
<content type='text'>
Pull mtd updates from Miquel Raynal:
 "Core MTD changes:

   - We must ignore error -ENOENT from parsers on subpartitions which is
     a legitimate return value

   - PM support is added to the intel-dg driver

  Raw NAND changes:

   - The major change in this is the support for the Allwinner H616 NAND
     controller, which lead to numerous changes and cleanups in the
     driver.

   - Another notable change in this driver is the use of field_get() and
     field_prep(), but since the global support for this helpers is
     going to be merged in the same release as we start using these
     helpers, we undefine them in the first place to avoid warnings.

   - Marvell drivers layout handling changes have also landed, they fix
     previous definitions and abuses that have been made previously,
     which implied to relax the ECC parameters validation in the core a
     bit.

   - The Cadence NAND controller driver gets NV-DDR interface support.

  SPI NAND changes:

   - Support for FudanMicro FM25S01BI3 and ESMT F50L1G41LC is added.

  SPI NOR changes:

   - Fix SMPT parsing for S25FS-S flash family. They report variable
     dummy cycles for reads. This results in the default of 0 being
     used. This works for other Infineon chips, but not for the S25FS-S
     family. They need 8 dummy cycles. Add fixup hooks to specify that.
     Also add fixup hooks to fix incorrect map ID data in SFDP.

   - Add support for a bunch of Winbond flashes. Their block protection
     information is not discoverable, so they need to have an entry in
     the flash tables to describe that.

   - Some cleanups for Micron flash support.

   - Add support for Micron mt35xu01gbba.

   - Some SPI controllers like the Intel one on the PCI bus do not
     support the read CR opcode (0x35). Do not use the opcode if the
     controller does not support it.

  Aside from these main changes, there is the usual load of API updates,
  kdoc fixes, potential memory leaks fixes, etc"

* tag 'mtd/for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (51 commits)
  mtd: sm_ftl: Fix typo in comment in sm_read_lba
  mtd: sm_ftl: Replace deprecated strncpy with sysfs_emit in sm_attr_show
  mtd: lpddr_cmds: fix signed shifts in lpddr_cmds
  mtd: docg3: fix kernel-doc warnings
  mtd: spinand: add support for FudanMicro FM25S01BI3
  mtd: rawnand: renesas: Handle devm_pm_runtime_enable() errors
  mtd: nand: realtek-ecc: Fix Kconfig dependencies
  mtd: rawnand: sunxi: #undef field_{get,prep}() before local definition
  mailmap: update Pratyush Yadav's email address
  mtd: spi-nor: core: Check read CR support
  mtd: spi-nor: micron-st: add TODO for fixing mt35xu02gcba
  mtd: spi-nor: micron-st: add mt35xu01gbba support
  mtd: spi-nor: micron-st: use SFDP of mt35xu512aba
  mtd: spi-nor: micron-st: move set_octal_dtr to late_init()
  mtd: spi-nor: micron-st: rename the die_late_init functions
  mtd: spinand: esmt: add support for F50L1G41LC
  mtd: rawnand: lpc32xx_slc: Convert to use devm_gpiod_get_optional()
  mtd: mtdpart: ignore error -ENOENT from parsers on subpartitions
  mtd: maps: pcmciamtd: fix potential memory leak in pcmciamtd_detach()
  mtd: spi-nor: spansion: SMPT fixups for S25FS-S
  ...
</content>
</entry>
<entry>
<title>mtd: spinand: add support for FudanMicro FM25S01BI3</title>
<updated>2025-11-29T12:46:40Z</updated>
<author>
<name>Mikhail Zhilkin</name>
<email>csharper2005@gmail.com</email>
</author>
<published>2025-11-27T19:59:00Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f6dffe2a9ed1bdcee1879e2728310fb1e08602cf'/>
<id>urn:sha1:f6dffe2a9ed1bdcee1879e2728310fb1e08602cf</id>
<content type='text'>
Add support for FudanMicro FM25S01BI3 SPI NAND.

Link: https://www.fmsh.com/nvm/FM25S01BI3_ds_eng.pdf

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: spinand: esmt: add support for F50L1G41LC</title>
<updated>2025-11-17T10:53:08Z</updated>
<author>
<name>Daniel Golle</name>
<email>daniel@makrotopia.org</email>
</author>
<published>2025-11-17T02:54:19Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b98994cb9bc24f5c7575c86650f96c384576fdfa'/>
<id>urn:sha1:b98994cb9bc24f5c7575c86650f96c384576fdfa</id>
<content type='text'>
This adds support for ESMT F50L1G41LC, which appears to be an updated
version of the already supported F50L1G41LB.
Add esmt_8c SPI_NAND manufacturer to account for the newly used vendor
ID with support for the ESMT F50L1G41LC chip.

Link: https://github.com/openwrt/openwrt/pull/15214#issuecomment-3514824435
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: spinand: fmsh: remove QE bit for FM25S01A flash</title>
<updated>2025-11-03T10:33:04Z</updated>
<author>
<name>Mikhail Kshevetskiy</name>
<email>mikhail.kshevetskiy@iopsys.eu</email>
</author>
<published>2025-11-03T01:01:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a1d3bc606bf5c3b3ea811cc2019df6285d75b00f'/>
<id>urn:sha1:a1d3bc606bf5c3b3ea811cc2019df6285d75b00f</id>
<content type='text'>
According to datasheet (http://eng.fmsh.com/nvm/FM25S01A_ds_eng.pdf)
there is no QE (Quad Enable) bit for FM25S01A flash, so remove it.

Fixes: 5f284dc15ca86 ("mtd: spinand: add support for FudanMicro FM25S01A")
Signed-off-by: Mikhail Kshevetskiy &lt;mikhail.kshevetskiy@iopsys.eu&gt;
Tested-by: Tianling Shen &lt;cnsztl@gmail.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'mtd/for-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux</title>
<updated>2025-10-04T22:50:37Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2025-10-04T22:50:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cc07b0a3afc8c15c1308497033453b44f7ccfc49'/>
<id>urn:sha1:cc07b0a3afc8c15c1308497033453b44f7ccfc49</id>
<content type='text'>
Pull MTD updates from Miquel Raynal:
 "MTD core:
   - Bad blocks increment is skipped if the block is already known bad
     (improves user statistics relevance)
   - Expose the OOB layout via debugfs

  Raw NAND:
   - Add support for Loongson-2K1000 and Loongson-2K0500 NAND
     controllers, including extra features, such as chip select
     and 6-byte NAND ID reading support
   - Drop the s3c2410 driver

  SPI NAND:
   - Important SPI NAND continuous read improvements and fixes
   - Add support for FudanMicro FM25S01A
   - Add support for continuous reads in Gigadevice vendor driver

  ECC:
   - Add support for the Realtek ECC engine

  SPI NOR:

   - Some flashes can't perform reads or writes with start or end being
     an odd number in Octal DTR mode. File systems like UBIFS can
     request such reads or writes, causing the transaction to error out.

     Pad the read or write transactions with extra bytes to avoid this
     problem.

  And the usual amount of various miscellaneous fixes"

* tag 'mtd/for-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (46 commits)
  mtd: rawnand: sunxi: drop unused module alias
  mtd: rawnand: stm32_fmc2: drop unused module alias
  mtd: rawnand: rockchip: drop unused module alias
  mtd: rawnand: pl353: drop unused module alias
  mtd: rawnand: omap2: drop unused module alias
  mtd: rawnand: atmel: drop unused module alias
  mtd: onenand: omap2: drop unused module alias
  mtd: hyperbus: hbmc-am654: drop unused module alias
  mtd: jedec_probe: use struct_size() helper for cfiq allocation
  mtd: cfi: use struct_size() helper for cfiq allocation
  mtd: nand: raw: gpmi: fix clocks when CONFIG_PM=N
  mtd: rawnand: omap2: fix device leak on probe failure
  mtd: rawnand: atmel: Fix error handling path in atmel_nand_controller_add_nands
  mtd: nand: realtek-ecc: Add Realtek external ECC engine support
  dt-bindings: mtd: Add realtek,rtl9301-ecc
  mtd: spinand: repeat reading in regular mode if continuous reading fails
  mtd: spinand: try a regular dirmap if creating a dirmap for continuous reading fails
  mtd: spinand: fix direct mapping creation sizes
  mtd: rawnand: fsmc: Default to autodetect buswidth
  mtd: nand: move nand_check_erased_ecc_chunk() to nand/core
  ...
</content>
</entry>
<entry>
<title>mtd: spinand: repeat reading in regular mode if continuous reading fails</title>
<updated>2025-09-29T15:53:08Z</updated>
<author>
<name>Mikhail Kshevetskiy</name>
<email>mikhail.kshevetskiy@iopsys.eu</email>
</author>
<published>2025-09-17T21:54:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=010dc7f2dd6a0078ade3f88f627ed5fbf45ceb94'/>
<id>urn:sha1:010dc7f2dd6a0078ade3f88f627ed5fbf45ceb94</id>
<content type='text'>
Continuous reading may result in multiple flash pages reading in one
operation. Unfortunately, not all spinand controllers support such
large reading. They will read less data. Unfortunately, the operation
can't be continued.

In this case:
 * disable continuous reading on this (not good enough) spi controller
 * repeat reading in regular mode.

Signed-off-by: Mikhail Kshevetskiy &lt;mikhail.kshevetskiy@iopsys.eu&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: spinand: try a regular dirmap if creating a dirmap for continuous reading fails</title>
<updated>2025-09-29T15:53:08Z</updated>
<author>
<name>Mikhail Kshevetskiy</name>
<email>mikhail.kshevetskiy@iopsys.eu</email>
</author>
<published>2025-09-17T21:54:00Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=004f8ea0d9917398aabff7388b3bf62a84a4088b'/>
<id>urn:sha1:004f8ea0d9917398aabff7388b3bf62a84a4088b</id>
<content type='text'>
Continuous reading may result in multiple flash pages reading in one
operation. Typically only one flash page has read/written (a little bit
more than 2-4 Kb), but continuous reading requires the spi controller
to read up to 512 Kb in one operation without toggling CS in beetween.

Roughly speaking spi controllers can be divided on 2 categories:
 * spi controllers without dirmap acceleration support
 * spi controllers with dirmap acceleration support

Firt of them will have issues with continuous reading if restriction on
the transfer length is implemented in the adjust_op_size() handler.
Second group often supports acceleration of single page only reading.
Thus enabling of continuous reading can break flash reading.

This patch tries to create dirmap for continuous reading first and
fallback to regular reading if spi controller refuses to create it.

Signed-off-by: Mikhail Kshevetskiy &lt;mikhail.kshevetskiy@iopsys.eu&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: spinand: fix direct mapping creation sizes</title>
<updated>2025-09-29T15:53:07Z</updated>
<author>
<name>Mikhail Kshevetskiy</name>
<email>mikhail.kshevetskiy@iopsys.eu</email>
</author>
<published>2025-09-17T21:53:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e4a0cf9f1d90e6888e5373da3314f761024f6c97'/>
<id>urn:sha1:e4a0cf9f1d90e6888e5373da3314f761024f6c97</id>
<content type='text'>
Continuous mode is only supported for data reads, thus writing
requires only single flash page mapping.

Signed-off-by: Mikhail Kshevetskiy &lt;mikhail.kshevetskiy@iopsys.eu&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
</feed>
