Re: [PATCH v3 00/12] mtd: spi-nor: add xSPI Octal DTR support
From: Pratyush Yadav
Date: Fri Mar 13 2020 - 11:51:09 EST
+Cc Boris. Forgot to add you when sending.
On 13/03/20 09:16PM, Pratyush Yadav wrote:
> Hi,
>
> This series adds support for octal DTR flashes in the spi-nor framework,
> and then adds hooks for the Cypress Semper flash which is an xSPI
> compliant Octal DTR flash.
>
> This series assumes that the flash is handed to the kernel in Legacy SPI
> mode. That is why there is no tracking of the state the flash is in.
> Ability to detect the flash mode and then run the SFDP procedure in that
> mode will be added as a follow up series.
>
> Tested on TI J721e EVM with 1-bit ECC on the Cypress flash.
>
> v1 can be found at [0]. v2 can be found at [1].
>
> [0] https://lore.kernel.org/linux-mtd/20200211133348.15558-1-p.yadav@xxxxxx/
> [1] https://lore.kernel.org/linux-mtd/20200226093703.19765-1-p.yadav@xxxxxx/
>
> Changes in v3:
> - Drop the DT properties "spi-rx-dtr" and "spi-tx-dtr". Instead, if
> later a need is felt to disable DTR in case someone has a board with
> Octal DTR capable flash but does not support DTR transactions for some
> reason, a property like "spi-no-dtr" can be added.
>
> - Remove mode bits SPI_RX_DTR and SPI_TX_DTR.
>
> - Remove the Cadence Quadspi controller patch to un-block this series. I
> will submit it as a separate patch.
>
> - Rebase on latest 'master' and fix merge conflicts.
>
> - Update read and write dirmap templates to use DTR.
>
> - Rename 'is_dtr' to 'dtr'.
>
> - Make 'dtr' a bitfield.
>
> - Reject DTR ops in spi_mem_default_supports_op().
>
> - Update atmel-quadspi to reject DTR ops. All other controller drivers
> call spi_mem_default_supports_op() so they will automatically reject
> DTR ops.
>
> - Add support for both enabling and disabling DTR modes.
>
> - Perform a Software Reset on flashes that support it when shutting
> down.
>
> - Disable Octal DTR mode on suspend, and re-enable it on resume.
>
> - Drop enum 'spi_mem_cmd_ext' and make command opcode u16 instead.
> Update spi-nor to use the 2-byte command instead of the command
> extension. Since we still need a "extension type", mode that enum to
> spi-nor and name it 'spi_nor_cmd_ext'.
>
> - Default variable address width to 3 to fix SMPT parsing.
>
> - Drop non-volatile change to uniform sector mode and rely on parsing
> SMPT.
>
> Pratyush Yadav (12):
> spi: spi-mem: allow specifying whether an op is DTR or not
> spi: atmel-quadspi: reject DTR ops
> spi: spi-mem: allow specifying a command's extension
> mtd: spi-nor: add support for DTR protocol
> mtd: spi-nor: default to address width of 3 for configurable widths
> mtd: spi-nor: get command opcode extension type from BFPT
> mtd: spi-nor: parse xSPI Profile 1.0 table
> mtd: spi-nor: use dummy cycle and address width info from SFDP
> mtd: spi-nor: enable octal DTR mode when possible
> mtd: spi-nor: perform a Soft Reset on shutdown
> mtd: spi-nor: Disable Octal DTR mode on suspend.
> mtd: spi-nor: add support for Cypress Semper flash
>
> drivers/mtd/spi-nor/spi-nor.c | 692 ++++++++++++++++++++++++++++++----
> drivers/spi/atmel-quadspi.c | 4 +
> drivers/spi/spi-mem.c | 3 +
> include/linux/mtd/spi-nor.h | 73 +++-
> include/linux/spi/spi-mem.h | 13 +-
> 5 files changed, 702 insertions(+), 83 deletions(-)
>
> --
> 2.25.0
>
--
Regards,
Pratyush Yadav
Texas Instruments India