From: Vignesh R <vigneshr@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 00/16] SF: Migrate to Linux SPI NOR framework
Date: Wed, 12 Dec 2018 23:02:12 +0530 [thread overview]
Message-ID: <20181212173228.12281-1-vigneshr@ti.com> (raw)
U-Boot SPI NOR support (sf layer) is quite outdated as it does not
support 4 byte addressing opcodes, SFDP table parsing and different types of
quad mode enable sequences. Many newer flashes no longer support BANK
registers used by sf layer to a access >16MB space.
Also, many SPI controllers have special MMIO interfaces which provide
accelerated read/write access but require knowledge of flash parameters
to make use of it. Recent spi-mem layer provides a way to support such
flashes but sf layer isn't using that.
This patch series syncs SPI NOR framework from Linux v4.19. It also adds
spi-mem support on top.
So, we gain 4byte addressing support and SFDP support. This makes
migrating to U-Boot MTD framework easier.
Tested with few Spansion, micron and macronix flashes with TI's dra7xx,
k2g, am43xx EVMs. I dont have access to flashes from other vendors. So,
I would greatly appreciate testing on other platforms. Complete series
with dependencies here[1]
For clean build on some platforms, depends on CONFIG_SPI_FLASH migration
to defconfigs [2]
[1] https://github.com/r-vignesh/u-boot.git branch: spi-nor-mig-patch-v1
[2] https://patchwork.ozlabs.org/patch/1007485/
Patch 12-15 are compile tested.
Change log:
Since RFC v2:
Fix issues reported by Simon Goldschmidt wrt 4 use of byte addressing opcode
Fix issues in compiling SFDP code
Re organize file names and Makefile to simply spi-nor-tiny inclusion
Remove SPI_FLASH_BAR and SF_DUAL_FLASH as these are no longer used
RFC v2: https://patchwork.ozlabs.org/cover/1007589/
Since RFC v1:
Add lightweight SPI flash stack for boards with SPL size constraints
Provide non DM version of spi-mem
Fix build issues on different platforms as reported by travis-ci on v1
RFC v1: https://patchwork.ozlabs.org/cover/1004689/
Vignesh R (16):
spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
spi-mem: Claim SPI bus before spi mem access
spi: Add non DM version of SPI_MEM
sh: bitops: add hweight*() macros
mtd: spi: Port SPI NOR framework from Linux
mtd: spi: Switch to new SPI NOR framework
mtd: spi: Remove unused files
mtd: spi: Add lightweight SPI flash stack for SPL
sf_mtd: Simply mtd operations
configs: Get rid of SPI_FLASH_BAR
configs: Remove SF_DUAL_FLASH
axm_defconfig: Enable simple malloc in SPL
taurus_defconfig: Enable simple malloc in SPL
da850_am18xxevm: Enable tiny printf
turris_omnia_defconfig: Enable tiny printf
MAINTAINERS: Add an entry for SPI NOR
MAINTAINERS | 8 +
arch/arm/mach-omap2/am33xx/Kconfig | 1 -
arch/sh/include/asm/bitops.h | 4 +
common/spl/Kconfig | 21 +-
configs/alt_defconfig | 1 -
configs/am57xx_evm_defconfig | 1 -
configs/am57xx_hs_evm_defconfig | 1 -
configs/ap121_defconfig | 1 -
configs/ap143_defconfig | 1 -
configs/avnet_ultra96_rev1_defconfig | 1 -
configs/axm_defconfig | 1 +
configs/axs101_defconfig | 1 -
configs/axs103_defconfig | 1 -
configs/bg0900_defconfig | 1 -
configs/blanche_defconfig | 1 -
configs/cl-som-am57x_defconfig | 1 -
configs/clearfog_defconfig | 1 -
configs/cm_t43_defconfig | 1 -
configs/da850_am18xxevm_defconfig | 1 +
configs/db-88f6820-amc_defconfig | 1 -
configs/display5_defconfig | 1 -
configs/display5_factory_defconfig | 1 -
configs/dra7xx_evm_defconfig | 1 -
configs/dra7xx_hs_evm_defconfig | 1 -
configs/ds109_defconfig | 1 -
configs/ds414_defconfig | 1 -
configs/evb-rv1108_defconfig | 1 -
configs/gose_defconfig | 1 -
configs/helios4_defconfig | 1 -
configs/k2g_evm_defconfig | 1 -
configs/k2g_hs_evm_defconfig | 1 -
configs/koelsch_defconfig | 1 -
configs/lager_defconfig | 1 -
configs/maxbcm_defconfig | 1 -
configs/mt7629_rfb_defconfig | 1 -
configs/mx6sxsabreauto_defconfig | 1 -
configs/mx6sxsabresd_defconfig | 1 -
configs/mx6ul_14x14_evk_defconfig | 1 -
configs/mx6ul_9x9_evk_defconfig | 1 -
configs/mx6ull_14x14_evk_defconfig | 1 -
configs/mx6ull_14x14_evk_plugin_defconfig | 1 -
configs/mx7dsabresd_qspi_defconfig | 1 -
configs/porter_defconfig | 1 -
configs/r8a77970_eagle_defconfig | 1 -
configs/silk_defconfig | 1 -
configs/socfpga_arria5_defconfig | 1 -
configs/socfpga_cyclone5_defconfig | 1 -
configs/socfpga_is1_defconfig | 1 -
configs/socfpga_sockit_defconfig | 1 -
configs/socfpga_socrates_defconfig | 1 -
configs/socfpga_sr1500_defconfig | 1 -
configs/socfpga_stratix10_defconfig | 1 -
configs/stout_defconfig | 1 -
configs/taurus_defconfig | 1 +
configs/topic_miami_defconfig | 1 -
configs/topic_miamilite_defconfig | 2 -
configs/topic_miamiplus_defconfig | 2 -
configs/turris_omnia_defconfig | 2 +-
configs/xilinx_versal_virt_defconfig | 1 -
configs/xilinx_zynqmp_mini_qspi_defconfig | 2 -
configs/xilinx_zynqmp_zc1232_revA_defconfig | 2 -
configs/xilinx_zynqmp_zc1254_revA_defconfig | 2 -
configs/xilinx_zynqmp_zc1275_revA_defconfig | 2 -
configs/xilinx_zynqmp_zc1275_revB_defconfig | 2 -
.../xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 1 -
.../xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 1 -
.../xilinx_zynqmp_zc1751_xm018_dc4_defconfig | 1 -
configs/xilinx_zynqmp_zcu100_revC_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_rev1_0_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_revA_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_revB_defconfig | 1 -
configs/xilinx_zynqmp_zcu104_revA_defconfig | 2 -
configs/xilinx_zynqmp_zcu104_revC_defconfig | 2 -
configs/xilinx_zynqmp_zcu106_revA_defconfig | 2 -
configs/xilinx_zynqmp_zcu111_revA_defconfig | 1 -
configs/zynq_cc108_defconfig | 1 -
configs/zynq_cse_qspi_defconfig | 1 -
configs/zynq_dlc20_rev1_0_defconfig | 1 -
configs/zynq_microzed_defconfig | 1 -
configs/zynq_minized_defconfig | 1 -
configs/zynq_z_turn_defconfig | 1 -
configs/zynq_zc702_defconfig | 1 -
configs/zynq_zc706_defconfig | 1 -
configs/zynq_zc770_xm010_defconfig | 1 -
configs/zynq_zc770_xm013_defconfig | 1 -
configs/zynq_zed_defconfig | 1 -
configs/zynq_zybo_defconfig | 1 -
configs/zynq_zybo_z7_defconfig | 1 -
doc/SPI/README.dual-flash | 92 -
doc/SPI/README.ti_qspi_dra_test | 1 -
drivers/mtd/spi/Kconfig | 22 +-
drivers/mtd/spi/Makefile | 12 +-
drivers/mtd/spi/sandbox.c | 36 +-
drivers/mtd/spi/sf_dataflash.c | 11 +-
drivers/mtd/spi/sf_internal.h | 230 +-
drivers/mtd/spi/sf_mtd.c | 52 +-
drivers/mtd/spi/sf_probe.c | 38 +-
drivers/mtd/spi/spi-nor-core.c | 2334 +++++++++++++++++
drivers/mtd/spi/spi-nor-ids.c | 294 +++
drivers/mtd/spi/spi-nor-tiny.c | 810 ++++++
drivers/mtd/spi/spi_flash.c | 1337 ----------
drivers/mtd/spi/spi_flash_ids.c | 211 --
drivers/spi/Kconfig | 4 +-
drivers/spi/Makefile | 1 +
drivers/spi/spi-mem-nodm.c | 89 +
drivers/spi/spi-mem.c | 15 +-
drivers/spi/stm32_qspi.c | 4 +-
include/configs/T102xQDS.h | 1 -
include/configs/T102xRDB.h | 1 -
include/configs/T104xRDB.h | 1 -
include/configs/T208xQDS.h | 1 -
include/configs/T208xRDB.h | 1 -
include/configs/gw_ventana.h | 1 -
include/configs/km/kmp204x-common.h | 1 -
include/configs/ls1021aiot.h | 1 -
include/configs/socfpga_stratix10_socdk.h | 1 -
include/linux/mtd/cfi.h | 32 +
include/linux/mtd/spi-nor.h | 421 +++
include/spi_flash.h | 105 +-
119 files changed, 4179 insertions(+), 2110 deletions(-)
delete mode 100644 doc/SPI/README.dual-flash
create mode 100644 drivers/mtd/spi/spi-nor-core.c
create mode 100644 drivers/mtd/spi/spi-nor-ids.c
create mode 100644 drivers/mtd/spi/spi-nor-tiny.c
delete mode 100644 drivers/mtd/spi/spi_flash.c
delete mode 100644 drivers/mtd/spi/spi_flash_ids.c
create mode 100644 drivers/spi/spi-mem-nodm.c
create mode 100644 include/linux/mtd/cfi.h
create mode 100644 include/linux/mtd/spi-nor.h
--
2.19.2
next reply other threads:[~2018-12-12 17:32 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-12 17:32 Vignesh R [this message]
2018-12-12 17:32 ` [U-Boot] [PATCH 01/16] spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 02/16] spi-mem: Claim SPI bus before spi mem access Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 03/16] spi: Add non DM version of SPI_MEM Vignesh R
2018-12-12 20:25 ` Jagan Teki
2018-12-12 20:40 ` Boris Brezillon
2018-12-12 20:45 ` Jagan Teki
2018-12-12 21:02 ` Boris Brezillon
2018-12-12 21:07 ` Jagan Teki
2018-12-12 21:25 ` Boris Brezillon
2018-12-12 23:10 ` Jagan Teki
2018-12-12 23:20 ` Tom Rini
2018-12-12 23:55 ` Boris Brezillon
2018-12-14 9:59 ` Jagan Teki
2019-01-04 21:28 ` Simon Glass
2018-12-13 9:38 ` Vignesh R
2018-12-13 9:41 ` Miquel Raynal
2018-12-13 8:50 ` Vignesh R
2018-12-14 10:02 ` Jagan Teki
2018-12-14 10:57 ` Vignesh R
2018-12-14 13:59 ` Jagan Teki
2019-01-28 6:57 ` Jagan Teki
2019-01-28 9:45 ` Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 04/16] sh: bitops: add hweight*() macros Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 05/16] mtd: spi: Port SPI NOR framework from Linux Vignesh R
2018-12-12 20:31 ` Jagan Teki
2018-12-12 22:56 ` Tom Rini
2018-12-12 23:21 ` Jagan Teki
2018-12-13 3:01 ` Tom Rini
2018-12-13 7:47 ` Stefan Roese
2018-12-13 11:44 ` Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 06/16] mtd: spi: Switch to new SPI NOR framework Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 07/16] mtd: spi: Remove unused files Vignesh R
2018-12-12 20:38 ` Jagan Teki
2018-12-13 9:07 ` Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 08/16] mtd: spi: Add lightweight SPI flash stack for SPL Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 09/16] sf_mtd: Simply mtd operations Vignesh R
2018-12-12 20:31 ` Boris Brezillon
2018-12-13 2:11 ` Daniel Schwierzeck
2018-12-13 7:46 ` Stefan Roese
2018-12-13 8:24 ` Vignesh R
2018-12-13 9:40 ` Stefan Roese
2018-12-12 17:32 ` [U-Boot] [PATCH 10/16] configs: Get rid of SPI_FLASH_BAR Vignesh R
2018-12-12 20:41 ` Jagan Teki
2018-12-12 20:51 ` Boris Brezillon
2018-12-12 20:54 ` Simon Goldschmidt
2018-12-13 10:41 ` Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 11/16] configs: Remove SF_DUAL_FLASH Vignesh R
2018-12-12 20:50 ` Jagan Teki
2018-12-12 17:32 ` [U-Boot] [PATCH 12/16] axm_defconfig: Enable simple malloc in SPL Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 13/16] taurus_defconfig: " Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 14/16] da850_am18xxevm: Enable tiny printf Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 15/16] turris_omnia_defconfig: " Vignesh R
2018-12-12 17:32 ` [U-Boot] [PATCH 16/16] MAINTAINERS: Add an entry for SPI NOR Vignesh R
2018-12-12 21:01 ` Jagan Teki
2018-12-14 8:03 ` Vignesh R
2018-12-14 10:13 ` [U-Boot] [PATCH 00/16] SF: Migrate to Linux SPI NOR framework Jagan Teki
2018-12-14 15:54 ` Vignesh R
2018-12-14 16:14 ` Simon Goldschmidt
2018-12-14 16:27 ` Vignesh R
2018-12-14 16:38 ` Simon Goldschmidt
2018-12-14 16:42 ` Vignesh R
2018-12-15 13:59 ` Jagan Teki
2018-12-15 14:42 ` Jagan Teki
2018-12-15 6:31 ` Stefan Roese
2018-12-15 13:54 ` Jagan Teki
2018-12-15 15:43 ` Vignesh R
2018-12-18 12:32 ` Jagan Teki
2018-12-18 17:19 ` Vignesh R
2018-12-21 8:55 ` Ashish Kumar
2018-12-15 15:43 ` Vignesh R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181212173228.12281-1-vigneshr@ti.com \
--to=vigneshr@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox