[PATCH v2 0/8] mtd: spi-nor: Rework flash parameter initialization

Michael Walle mwalle at kernel.org
Mon Jul 13 02:11:38 PDT 2026


Try to simplify the flash initialization and get rid of the legacy
handling. As default, all the flags of the in-kernel database are
taken and amended with the SFDP data.

This might have the consequence that all the flashes now get a
RDSFPD opcode which might be an unknown opcode. But that was already
the case for any flashes which were unknown to the linux kernel. So
far, there was not a single complaint. See patch 8 for more
information.

Sashiko found that not everything is rolled back in case of a SFDP
parsing failure. Thus there are now 5 additional patches which will
move the discovered parameters into spi_nor_flash_parameter which is
rolled back. The new rule is now:

  SFDP parsing and the per-flash SFDP fixups must only change the
  spi_nor_flash_parameter data.

changes since v1:
 - collected Tb and Rb tags
 - Fixed the roll-back issue Sashiko found, we now keep two backups
   for the parameters.
 - Link to v1: https://lore.kernel.org/linux-mtd/20260703143003.1809579-1-mwalle@kernel.org/

changes since the RFC:
 - new patches to address the rollback issue, as pointed out by
   Sashiko
 - remove SKIP_SFDP from kerneldoc, as pointed out by Sashiko
 - mention issuing the potential unsupported RDSFPD command in the
   commit message, as pointed out by Tudor
 - Link to the RFC: https://lore.kernel.org/linux-mtd/20260601125438.3481722-1-mwalle@kernel.org/

Michael Walle (8):
  mtd: spi-nor: spansion: s25fl256s0: remove SKIP_SFDP flag
  mtd: spi-nor: don't clear the SNOR_F_4B_OPCODES flag on failure
  mtd: spi-nor: move cmd_ext_type into spi_nor_flash_parameter
  mtd: spi-nor: move flags into spi_nor_flash_parameter
  mtd: spi-nor: move spi_nor_post_bfpt_fixups() into sfdp
  mtd: spi-nor: spansion: s25fs256t: move ARCFN check into .late_init
  mtd: spi-nor: push the rollback mechanism into the sfdp module
  mtd: spi-nor: rework flash parameter initialization

 drivers/mtd/spi-nor/core.c      | 178 +++++++++++---------------------
 drivers/mtd/spi-nor/core.h      |  13 +--
 drivers/mtd/spi-nor/debugfs.c   |   6 +-
 drivers/mtd/spi-nor/macronix.c  |   2 +-
 drivers/mtd/spi-nor/micron-st.c |   8 +-
 drivers/mtd/spi-nor/sfdp.c      |  70 ++++++++++---
 drivers/mtd/spi-nor/spansion.c  |  36 ++++---
 drivers/mtd/spi-nor/swp.c       |  52 ++++++----
 drivers/mtd/spi-nor/winbond.c   |   4 +-
 include/linux/mtd/spi-nor.h     |   4 -
 10 files changed, 185 insertions(+), 188 deletions(-)

-- 
2.47.3




More information about the linux-mtd mailing list