[PATCH v6 00/14] mtd: spi-nor: Add support for Cypress s25hl-t/s25hs-t

tkuw584924 at gmail.com tkuw584924 at gmail.com
Wed Apr 7 05:30:58 CEST 2021

From: Takahiro Kuwano <Takahiro.Kuwano at infineon.com>

The S25HL-T/S25HS-T family is the Cypress Semper Flash with Quad SPI.

The summary datasheets can be found in the following links.
https://www.cypress.com/file/424146/download (256Mb/512Mb/1Gb, single die)
https://www.cypress.com/file/499246/download (2Gb/4Gb, dual/quad die)

The full version can be found in the following links (registration

Tested on Xilinx Zynq-7000 FPGA board.

Changes since v6:
  - Took some patches from Pratyush's series
  - Removed USE_CLSR flag from S25HL02GT and S25HS02GT
  - Defined SPINOR_OP_EX4B_CYPRESS and use it
  - Removed mtd.writesize fixup
  - Added uniform sector check for multi-die package parts
  - Remove spansion_quad_enable_volatile() from tiny
  - Fixed some other minor issues

Changes since v5:
  - Removed 256Mb and 4Gb parts support
  - Fixed register offset issue in spansion_quad_enable_volatile()
  - Added spi_nor_default_ready() and moved existing code into it
  - Separated spansion_sr_read() to new patch
  - Renamed spansion_overlaid_erase() to spansion_non_uniform_erase() and
    changed the implementation to issue the proper erase command based on
    the address
  - Added s25hx_t_erase_non_uniform()
  - Changed mtd.writesize and mtd.flags in s25hx_t_setup()
  - Fixed page size and erase size issues in s25hx_t_post_bfpt_fixup()

Changes since v4:
  - Added Read/Write Any Register support
  - Added the ->ready() hook to support multi-die package parts
  - Added S25HL02GT/S25HL04GT/S25HS02GT/S25HS04GT support
Changes since v3:
  - Split into multiple patches

Changes since v2:
  - Fixed typo in comment for spansion_overlaid_erase()
  - Fixed expressions for addr and len check in spansion_overlaid_erase()
  - Added device ID check to make the changes effective for S25 only
  - Added nor->setup() and fixup hooks based on the following patches

Pratyush Yadav (4):
  mtd: spi-nor-core: Add a ->setup() hook
  mtd: spi-nor-core: Move SFDP related declarations to top
  mtd: spi-nor-core: Introduce flash-specific fixup hooks
  mtd: spi-nor-core: allow truncated erases

Takahiro Kuwano (10):
  mtd: spi-nor-core: Add non-uniform erase for Spansion/Cypress
  mtd: spi-nor: Add Cypress manufacturer ID
  mtd: spi-nor-ids: Add Cypress s25hl-t/s25hs-t
  mtd: spi-nor-core: Add support for Read/Write Any  Register
  mtd: spi-nor-core: Add support for volatile QE bit
  mtd: spi-nor-core: Add the ->ready() hook
  mtd: spi-nor-core: Read status by Read Any Register
  mtd: spi-nor-core: Add Cypress manufacturer ID in  set_4byte
  mtd: spi-nor-core: Add fixups for Cypress  s25hl-t/s25hs-t
  mtd: spi-nor-tiny: Add fixups for Cypress  s25hl-t/s25hs-t

 drivers/mtd/spi/spi-nor-core.c | 723 ++++++++++++++++++++++++---------
 drivers/mtd/spi/spi-nor-ids.c  |  16 +
 drivers/mtd/spi/spi-nor-tiny.c |  28 +-
 include/linux/mtd/spi-nor.h    | 205 +++++++---
 4 files changed, 700 insertions(+), 272 deletions(-)


More information about the U-Boot mailing list