From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vignesh R Date: Mon, 21 Jan 2019 17:28:53 +0530 Subject: [U-Boot] [PATCH v2 00/11] SF: Migrate to Linux SPI NOR framework In-Reply-To: <5cb8d555-f064-b719-0308-fc681788b719@ti.com> References: <20181221063836.11429-1-vigneshr@ti.com> <5cb8d555-f064-b719-0308-fc681788b719@ti.com> Message-ID: <631d0401-e97d-ace4-4391-11caf1022351@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 14/01/19 8:32 PM, Vignesh R wrote: > Hi Jagan, > > Could you please review v2? If we plan to merge this series for > v2019.04, we should probably plan to take it a bit early so as to > address any regression or fall out in time. Thanks! > Gentle ping... Jagan could you review this series? If there are no comments, I will address Simon's comments and post v3 tomo. Regards Vignesh > Regards > Vignesh > > On 21/12/18 12:08 PM, Vignesh R wrote: >> 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-v2 >> [2] https://patchwork.ozlabs.org/patch/1007485/ >> >> Simon, Stefan, Thanks for testing previous versions. >> I haven't carried Tested-by's here as I have added back SPI_FLASH_BAR >> support (but isn't enabled by default). Would be great if you could >> retest this series. >> I am hoping there won't be any major rework/changes after this round. >> >> Change log: >> Since v1: >> Remove #ifindef __UBOOT__ >> Add back BAR support, but dont enable as default for all platform (see >> 10/11 for more details) >> Enable SPI_FLASH_TINY on boards where there is SPL size constraint as >> seen on travis ci builds. >> Drop sf_mtd changes for now as it seems to cause issues. >> v1: https://patchwork.ozlabs.org/cover/1012146/ >> >> 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 (11): >> 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 >> configs: Enable SPI_FLASH_TINY for resource constrained boards >> configs: Remove SF_DUAL_FLASH >> configs: Don't use SPI_FLASH_BAR as default >> MAINTAINERS: Add an entry for SPI NOR >> >> MAINTAINERS | 9 + >> 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/da850evm_nand_defconfig | 2 +- >> configs/db-88f6820-amc_defconfig | 1 - >> configs/db-88f6820-gp_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 | 2 +- >> 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 | 2 +- >> configs/taurus_defconfig | 3 +- >> 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 | 16 +- >> drivers/mtd/spi/Makefile | 12 +- >> drivers/mtd/spi/sandbox.c | 36 +- >> drivers/mtd/spi/sf_dataflash.c | 11 +- >> drivers/mtd/spi/sf_internal.h | 225 +- >> drivers/mtd/spi/sf_probe.c | 33 +- >> drivers/mtd/spi/spi-nor-core.c | 2432 +++++++++++++++++ >> drivers/mtd/spi/spi-nor-ids.c | 297 ++ >> 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 | 9 +- >> drivers/spi/Makefile | 1 + >> drivers/spi/spi-mem-nodm.c | 89 + >> drivers/spi/spi-mem.c | 6 + >> 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 | 419 +++ >> include/spi_flash.h | 105 +- >> 120 files changed, 4266 insertions(+), 2058 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 >> > > _______________________________________________ > U-Boot mailing list > U-Boot at lists.denx.de > https://lists.denx.de/listinfo/u-boot > -- Regards Vignesh