[U-Boot,v4,00/20] SF: Migrate to Linux SPI NOR framework
mbox series

Message ID 20190205055929.24168-1-vigneshr@ti.com
Headers show
Series
  • SF: Migrate to Linux SPI NOR framework
Related show

Message

Vignesh Raghavendra Feb. 5, 2019, 5:59 a.m. UTC
Here is the v4 of SPI NOR migration(github branch at [1]) with minor
cleanups

Travis ci report:
https://travis-ci.org/r-vignesh/u-boot/builds/488868207

Change log:
Since v3:
Rebase on to the latest u-boot/master
Drop MODULE_LICENSE, EXPORT_SYMBOL_GPL macros
Make SPI_FLASH_BAR default for ZYNQ_QSPI as suggested by Jagan.

Since v2:
Split sync up patches into smaller versions so that its easier for review.
Address comments by Jagan and Simon Goldschmidt on v2.
Make SPI_FLASH_TINY(read only SF stack)  as default for SPL build to
offset against size increase due to new code.

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/

Background:

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]

[1] https://github.com/r-vignesh/u-boot.git  branch: spi-nor-mig-patch-v4

Vignesh R (20):
  configs: Move CONFIG_SPI_FLASH into defconfigs
  bitops: Fix GENMASK definition for Sandbox
  spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
  spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
  spi: 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: spi-nor-core: Add SPI MEM support
  mtd: spi: spi-nor-core: Add 4 Byte addressing support
  mtd: spi: spi-nor-core: Add SFDP support
  mtd: spi: spi-nor-core: Add back U-Boot specific features
  mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
  mtd: spi: Switch to new SPI NOR framework
  mtd: spi: Remove unused files
  mtd: spi: Add lightweight SPI flash stack for SPL
  spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
  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                            |   23 +-
 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/axs101_defconfig                      |    1 -
 configs/axs103_defconfig                      |    1 -
 configs/bg0900_defconfig                      |    1 -
 configs/blanche_defconfig                     |    1 -
 configs/cgtqmx6eval_defconfig                 |    1 +
 configs/chromebit_mickey_defconfig            |    1 +
 configs/chromebook_jerry_defconfig            |    1 +
 configs/chromebook_minnie_defconfig           |    1 +
 configs/cl-som-am57x_defconfig                |    1 -
 configs/clearfog_defconfig                    |    1 -
 configs/cm_t43_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-rk3036_defconfig                  |    1 +
 configs/evb-rk3128_defconfig                  |    1 +
 configs/evb-rk3288_defconfig                  |    1 +
 configs/evb-rk3328_defconfig                  |    1 +
 configs/evb-rv1108_defconfig                  |    1 -
 configs/fennec-rk3288_defconfig               |    1 +
 configs/firefly-rk3288_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/kylin-rk3036_defconfig                |    1 +
 configs/lager_defconfig                       |    1 -
 configs/ls2080aqds_SECURE_BOOT_defconfig      |    1 +
 configs/ls2080aqds_defconfig                  |    1 +
 configs/ls2080aqds_nand_defconfig             |    1 +
 configs/ls2080aqds_qspi_defconfig             |    1 +
 configs/ls2080aqds_sdcard_defconfig           |    1 +
 configs/maxbcm_defconfig                      |    1 -
 configs/miqi-rk3288_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/phycore-rk3288_defconfig              |    1 +
 configs/popmetal-rk3288_defconfig             |    1 +
 configs/porter_defconfig                      |    1 -
 configs/r8a77970_eagle_defconfig              |    1 -
 configs/rock2_defconfig                       |    1 +
 configs/rock_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/tinker-rk3288_defconfig               |    1 +
 configs/topic_miami_defconfig                 |    1 -
 configs/topic_miamilite_defconfig             |    2 -
 configs/topic_miamiplus_defconfig             |    2 -
 configs/turris_omnia_defconfig                |    1 +
 configs/vyasa-rk3288_defconfig                |    1 +
 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  |    2 -
 .../xilinx_zynqmp_zc1751_xm016_dc2_defconfig  |    1 -
 .../xilinx_zynqmp_zc1751_xm018_dc4_defconfig  |    2 -
 configs/xilinx_zynqmp_zcu100_revC_defconfig   |    1 -
 configs/xilinx_zynqmp_zcu102_rev1_0_defconfig |    2 -
 configs/xilinx_zynqmp_zcu102_revA_defconfig   |    2 -
 configs/xilinx_zynqmp_zcu102_revB_defconfig   |    2 -
 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                | 2414 +++++++++++++++++
 drivers/mtd/spi/spi-nor-ids.c                 |  297 ++
 drivers/mtd/spi/spi-nor-tiny.c                |  804 ++++++
 drivers/mtd/spi/spi_flash.c                   | 1337 ---------
 drivers/mtd/spi/spi_flash_ids.c               |  211 --
 drivers/spi/Kconfig                           |   10 +-
 drivers/spi/Makefile                          |    1 +
 drivers/spi/spi-mem-nodm.c                    |  105 +
 drivers/spi/spi-mem.c                         |   41 +-
 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/cgtqmx6eval.h                 |    1 -
 include/configs/gw_ventana.h                  |    1 -
 include/configs/km/kmp204x-common.h           |    1 -
 include/configs/ls1021aiot.h                  |    1 -
 include/configs/ls2080aqds.h                  |    2 -
 include/configs/rk3036_common.h               |    1 -
 include/configs/rk3128_common.h               |    1 -
 include/configs/rk3188_common.h               |    1 -
 include/configs/rk3288_common.h               |    1 -
 include/configs/rk3328_common.h               |    1 -
 include/configs/socfpga_stratix10_socdk.h     |    1 -
 include/configs/turris_omnia.h                |    1 -
 include/linux/bitops.h                        |    5 +
 include/linux/mtd/cfi.h                       |   32 +
 include/linux/mtd/spi-nor.h                   |  419 +++
 include/spi_flash.h                           |  105 +-
 147 files changed, 4302 insertions(+), 2083 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

Comments

Simon Goldschmidt Feb. 6, 2019, 8:13 a.m. UTC | #1
On Tue, Feb 5, 2019 at 6:58 AM Vignesh R <vigneshr@ti.com> wrote:
>
> Here is the v4 of SPI NOR migration(github branch at [1]) with minor
> cleanups

I've just sanity-checked this again on socfpga_socrates: Everything
still works and SPL is ~1.8 KiB smaller than without this patch.

Regargds,
Simon

>
> Travis ci report:
> https://travis-ci.org/r-vignesh/u-boot/builds/488868207
>
> Change log:
> Since v3:
> Rebase on to the latest u-boot/master
> Drop MODULE_LICENSE, EXPORT_SYMBOL_GPL macros
> Make SPI_FLASH_BAR default for ZYNQ_QSPI as suggested by Jagan.
>
> Since v2:
> Split sync up patches into smaller versions so that its easier for review.
> Address comments by Jagan and Simon Goldschmidt on v2.
> Make SPI_FLASH_TINY(read only SF stack)  as default for SPL build to
> offset against size increase due to new code.
>
> 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/
>
> Background:
>
> 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]
>
> [1] https://github.com/r-vignesh/u-boot.git  branch: spi-nor-mig-patch-v4
>
> Vignesh R (20):
>   configs: Move CONFIG_SPI_FLASH into defconfigs
>   bitops: Fix GENMASK definition for Sandbox
>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
>   spi: 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: spi-nor-core: Add SPI MEM support
>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
>   mtd: spi: spi-nor-core: Add SFDP support
>   mtd: spi: spi-nor-core: Add back U-Boot specific features
>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
>   mtd: spi: Switch to new SPI NOR framework
>   mtd: spi: Remove unused files
>   mtd: spi: Add lightweight SPI flash stack for SPL
>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
>   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                            |   23 +-
>  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/axs101_defconfig                      |    1 -
>  configs/axs103_defconfig                      |    1 -
>  configs/bg0900_defconfig                      |    1 -
>  configs/blanche_defconfig                     |    1 -
>  configs/cgtqmx6eval_defconfig                 |    1 +
>  configs/chromebit_mickey_defconfig            |    1 +
>  configs/chromebook_jerry_defconfig            |    1 +
>  configs/chromebook_minnie_defconfig           |    1 +
>  configs/cl-som-am57x_defconfig                |    1 -
>  configs/clearfog_defconfig                    |    1 -
>  configs/cm_t43_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-rk3036_defconfig                  |    1 +
>  configs/evb-rk3128_defconfig                  |    1 +
>  configs/evb-rk3288_defconfig                  |    1 +
>  configs/evb-rk3328_defconfig                  |    1 +
>  configs/evb-rv1108_defconfig                  |    1 -
>  configs/fennec-rk3288_defconfig               |    1 +
>  configs/firefly-rk3288_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/kylin-rk3036_defconfig                |    1 +
>  configs/lager_defconfig                       |    1 -
>  configs/ls2080aqds_SECURE_BOOT_defconfig      |    1 +
>  configs/ls2080aqds_defconfig                  |    1 +
>  configs/ls2080aqds_nand_defconfig             |    1 +
>  configs/ls2080aqds_qspi_defconfig             |    1 +
>  configs/ls2080aqds_sdcard_defconfig           |    1 +
>  configs/maxbcm_defconfig                      |    1 -
>  configs/miqi-rk3288_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/phycore-rk3288_defconfig              |    1 +
>  configs/popmetal-rk3288_defconfig             |    1 +
>  configs/porter_defconfig                      |    1 -
>  configs/r8a77970_eagle_defconfig              |    1 -
>  configs/rock2_defconfig                       |    1 +
>  configs/rock_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/tinker-rk3288_defconfig               |    1 +
>  configs/topic_miami_defconfig                 |    1 -
>  configs/topic_miamilite_defconfig             |    2 -
>  configs/topic_miamiplus_defconfig             |    2 -
>  configs/turris_omnia_defconfig                |    1 +
>  configs/vyasa-rk3288_defconfig                |    1 +
>  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  |    2 -
>  .../xilinx_zynqmp_zc1751_xm016_dc2_defconfig  |    1 -
>  .../xilinx_zynqmp_zc1751_xm018_dc4_defconfig  |    2 -
>  configs/xilinx_zynqmp_zcu100_revC_defconfig   |    1 -
>  configs/xilinx_zynqmp_zcu102_rev1_0_defconfig |    2 -
>  configs/xilinx_zynqmp_zcu102_revA_defconfig   |    2 -
>  configs/xilinx_zynqmp_zcu102_revB_defconfig   |    2 -
>  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                | 2414 +++++++++++++++++
>  drivers/mtd/spi/spi-nor-ids.c                 |  297 ++
>  drivers/mtd/spi/spi-nor-tiny.c                |  804 ++++++
>  drivers/mtd/spi/spi_flash.c                   | 1337 ---------
>  drivers/mtd/spi/spi_flash_ids.c               |  211 --
>  drivers/spi/Kconfig                           |   10 +-
>  drivers/spi/Makefile                          |    1 +
>  drivers/spi/spi-mem-nodm.c                    |  105 +
>  drivers/spi/spi-mem.c                         |   41 +-
>  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/cgtqmx6eval.h                 |    1 -
>  include/configs/gw_ventana.h                  |    1 -
>  include/configs/km/kmp204x-common.h           |    1 -
>  include/configs/ls1021aiot.h                  |    1 -
>  include/configs/ls2080aqds.h                  |    2 -
>  include/configs/rk3036_common.h               |    1 -
>  include/configs/rk3128_common.h               |    1 -
>  include/configs/rk3188_common.h               |    1 -
>  include/configs/rk3288_common.h               |    1 -
>  include/configs/rk3328_common.h               |    1 -
>  include/configs/socfpga_stratix10_socdk.h     |    1 -
>  include/configs/turris_omnia.h                |    1 -
>  include/linux/bitops.h                        |    5 +
>  include/linux/mtd/cfi.h                       |   32 +
>  include/linux/mtd/spi-nor.h                   |  419 +++
>  include/spi_flash.h                           |  105 +-
>  147 files changed, 4302 insertions(+), 2083 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.20.1
>
Vignesh Raghavendra Feb. 6, 2019, 5:32 p.m. UTC | #2
On 06-Feb-19 1:43 PM, Simon Goldschmidt wrote:
> On Tue, Feb 5, 2019 at 6:58 AM Vignesh R <vigneshr@ti.com> wrote:
>>
>> Here is the v4 of SPI NOR migration(github branch at [1]) with minor
>> cleanups
> 
> I've just sanity-checked this again on socfpga_socrates: Everything
> still works and SPL is ~1.8 KiB smaller than without this patch.
> 

Thanks again for testing!

Jagan,

This is based on top of latest u-boot/master. Could this series be
queued now? Thanks!

Regards
Vignesh


>>
>> Travis ci report:
>> https://travis-ci.org/r-vignesh/u-boot/builds/488868207
>>
>> Change log:
>> Since v3:
>> Rebase on to the latest u-boot/master
>> Drop MODULE_LICENSE, EXPORT_SYMBOL_GPL macros
>> Make SPI_FLASH_BAR default for ZYNQ_QSPI as suggested by Jagan.
>>
>> Since v2:
>> Split sync up patches into smaller versions so that its easier for review.
>> Address comments by Jagan and Simon Goldschmidt on v2.
>> Make SPI_FLASH_TINY(read only SF stack)  as default for SPL build to
>> offset against size increase due to new code.
>>
>> 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/
>>
>> Background:
>>
>> 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]
>>
>> [1] https://github.com/r-vignesh/u-boot.git  branch: spi-nor-mig-patch-v4
>>
>> Vignesh R (20):
>>   configs: Move CONFIG_SPI_FLASH into defconfigs
>>   bitops: Fix GENMASK definition for Sandbox
>>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
>>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
>>   spi: 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: spi-nor-core: Add SPI MEM support
>>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
>>   mtd: spi: spi-nor-core: Add SFDP support
>>   mtd: spi: spi-nor-core: Add back U-Boot specific features
>>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
>>   mtd: spi: Switch to new SPI NOR framework
>>   mtd: spi: Remove unused files
>>   mtd: spi: Add lightweight SPI flash stack for SPL
>>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
>>   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                            |   23 +-
>>  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/axs101_defconfig                      |    1 -
>>  configs/axs103_defconfig                      |    1 -
>>  configs/bg0900_defconfig                      |    1 -
>>  configs/blanche_defconfig                     |    1 -
>>  configs/cgtqmx6eval_defconfig                 |    1 +
>>  configs/chromebit_mickey_defconfig            |    1 +
>>  configs/chromebook_jerry_defconfig            |    1 +
>>  configs/chromebook_minnie_defconfig           |    1 +
>>  configs/cl-som-am57x_defconfig                |    1 -
>>  configs/clearfog_defconfig                    |    1 -
>>  configs/cm_t43_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-rk3036_defconfig                  |    1 +
>>  configs/evb-rk3128_defconfig                  |    1 +
>>  configs/evb-rk3288_defconfig                  |    1 +
>>  configs/evb-rk3328_defconfig                  |    1 +
>>  configs/evb-rv1108_defconfig                  |    1 -
>>  configs/fennec-rk3288_defconfig               |    1 +
>>  configs/firefly-rk3288_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/kylin-rk3036_defconfig                |    1 +
>>  configs/lager_defconfig                       |    1 -
>>  configs/ls2080aqds_SECURE_BOOT_defconfig      |    1 +
>>  configs/ls2080aqds_defconfig                  |    1 +
>>  configs/ls2080aqds_nand_defconfig             |    1 +
>>  configs/ls2080aqds_qspi_defconfig             |    1 +
>>  configs/ls2080aqds_sdcard_defconfig           |    1 +
>>  configs/maxbcm_defconfig                      |    1 -
>>  configs/miqi-rk3288_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/phycore-rk3288_defconfig              |    1 +
>>  configs/popmetal-rk3288_defconfig             |    1 +
>>  configs/porter_defconfig                      |    1 -
>>  configs/r8a77970_eagle_defconfig              |    1 -
>>  configs/rock2_defconfig                       |    1 +
>>  configs/rock_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/tinker-rk3288_defconfig               |    1 +
>>  configs/topic_miami_defconfig                 |    1 -
>>  configs/topic_miamilite_defconfig             |    2 -
>>  configs/topic_miamiplus_defconfig             |    2 -
>>  configs/turris_omnia_defconfig                |    1 +
>>  configs/vyasa-rk3288_defconfig                |    1 +
>>  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  |    2 -
>>  .../xilinx_zynqmp_zc1751_xm016_dc2_defconfig  |    1 -
>>  .../xilinx_zynqmp_zc1751_xm018_dc4_defconfig  |    2 -
>>  configs/xilinx_zynqmp_zcu100_revC_defconfig   |    1 -
>>  configs/xilinx_zynqmp_zcu102_rev1_0_defconfig |    2 -
>>  configs/xilinx_zynqmp_zcu102_revA_defconfig   |    2 -
>>  configs/xilinx_zynqmp_zcu102_revB_defconfig   |    2 -
>>  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                | 2414 +++++++++++++++++
>>  drivers/mtd/spi/spi-nor-ids.c                 |  297 ++
>>  drivers/mtd/spi/spi-nor-tiny.c                |  804 ++++++
>>  drivers/mtd/spi/spi_flash.c                   | 1337 ---------
>>  drivers/mtd/spi/spi_flash_ids.c               |  211 --
>>  drivers/spi/Kconfig                           |   10 +-
>>  drivers/spi/Makefile                          |    1 +
>>  drivers/spi/spi-mem-nodm.c                    |  105 +
>>  drivers/spi/spi-mem.c                         |   41 +-
>>  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/cgtqmx6eval.h                 |    1 -
>>  include/configs/gw_ventana.h                  |    1 -
>>  include/configs/km/kmp204x-common.h           |    1 -
>>  include/configs/ls1021aiot.h                  |    1 -
>>  include/configs/ls2080aqds.h                  |    2 -
>>  include/configs/rk3036_common.h               |    1 -
>>  include/configs/rk3128_common.h               |    1 -
>>  include/configs/rk3188_common.h               |    1 -
>>  include/configs/rk3288_common.h               |    1 -
>>  include/configs/rk3328_common.h               |    1 -
>>  include/configs/socfpga_stratix10_socdk.h     |    1 -
>>  include/configs/turris_omnia.h                |    1 -
>>  include/linux/bitops.h                        |    5 +
>>  include/linux/mtd/cfi.h                       |   32 +
>>  include/linux/mtd/spi-nor.h                   |  419 +++
>>  include/spi_flash.h                           |  105 +-
>>  147 files changed, 4302 insertions(+), 2083 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.20.1
>>
Tom Rini Feb. 6, 2019, 7:05 p.m. UTC | #3
On Wed, Feb 06, 2019 at 11:02:25PM +0530, Vignesh R wrote:
> 
> 
> On 06-Feb-19 1:43 PM, Simon Goldschmidt wrote:
> > On Tue, Feb 5, 2019 at 6:58 AM Vignesh R <vigneshr@ti.com> wrote:
> >>
> >> Here is the v4 of SPI NOR migration(github branch at [1]) with minor
> >> cleanups
> > 
> > I've just sanity-checked this again on socfpga_socrates: Everything
> > still works and SPL is ~1.8 KiB smaller than without this patch.
> > 
> 
> Thanks again for testing!
> 
> Jagan,
> 
> This is based on top of latest u-boot/master. Could this series be
> queued now? Thanks!

Yes please, thanks!
Jagan Teki Feb. 7, 2019, 12:43 p.m. UTC | #4
On Tue, Feb 5, 2019 at 11:29 AM Vignesh R <vigneshr@ti.com> wrote:
>
> Here is the v4 of SPI NOR migration(github branch at [1]) with minor
> cleanups
>
> Travis ci report:
> https://travis-ci.org/r-vignesh/u-boot/builds/488868207
>
> Change log:
> Since v3:
> Rebase on to the latest u-boot/master
> Drop MODULE_LICENSE, EXPORT_SYMBOL_GPL macros
> Make SPI_FLASH_BAR default for ZYNQ_QSPI as suggested by Jagan.
>
> Since v2:
> Split sync up patches into smaller versions so that its easier for review.
> Address comments by Jagan and Simon Goldschmidt on v2.
> Make SPI_FLASH_TINY(read only SF stack)  as default for SPL build to
> offset against size increase due to new code.
>
> 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/
>
> Background:
>
> 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]
>
> [1] https://github.com/r-vignesh/u-boot.git  branch: spi-nor-mig-patch-v4
>
> Vignesh R (20):
>   configs: Move CONFIG_SPI_FLASH into defconfigs
>   bitops: Fix GENMASK definition for Sandbox
>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
>   spi: 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: spi-nor-core: Add SPI MEM support
>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
>   mtd: spi: spi-nor-core: Add SFDP support
>   mtd: spi: spi-nor-core: Add back U-Boot specific features
>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
>   mtd: spi: Switch to new SPI NOR framework
>   mtd: spi: Remove unused files
>   mtd: spi: Add lightweight SPI flash stack for SPL
>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
>   configs: Remove SF_DUAL_FLASH
>   configs: Don't use SPI_FLASH_BAR as default
>   MAINTAINERS: Add an entry for SPI NOR

Update trivial change on this patch.

Applied to u-boot-spi/master, thanks for the big changes and welcome aboard!

Jagan.
Vignesh Raghavendra Feb. 8, 2019, 1:06 p.m. UTC | #5
On 07/02/19 6:13 PM, Jagan Teki wrote:
> On Tue, Feb 5, 2019 at 11:29 AM Vignesh R <vigneshr@ti.com> wrote:
[...]
>>
>> Vignesh R (20):
>>   configs: Move CONFIG_SPI_FLASH into defconfigs
>>   bitops: Fix GENMASK definition for Sandbox
>>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
>>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
>>   spi: 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: spi-nor-core: Add SPI MEM support
>>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
>>   mtd: spi: spi-nor-core: Add SFDP support
>>   mtd: spi: spi-nor-core: Add back U-Boot specific features
>>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
>>   mtd: spi: Switch to new SPI NOR framework
>>   mtd: spi: Remove unused files
>>   mtd: spi: Add lightweight SPI flash stack for SPL
>>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
>>   configs: Remove SF_DUAL_FLASH
>>   configs: Don't use SPI_FLASH_BAR as default
>>   MAINTAINERS: Add an entry for SPI NOR
> 
> Update trivial change on this patch.
> 
> Applied to u-boot-spi/master, thanks for the big changes and welcome aboard!
> 

Thanks Jagan! Thanks all for testing out this series
Boris Brezillon Feb. 13, 2019, 1:42 p.m. UTC | #6
[PM]
Hi Vignesh,

On Fri, 8 Feb 2019 18:36:05 +0530
Vignesh R <vigneshr@ti.com> wrote:

> On 07/02/19 6:13 PM, Jagan Teki wrote:
> > On Tue, Feb 5, 2019 at 11:29 AM Vignesh R <vigneshr@ti.com> wrote:  
> [...]
> >>
> >> Vignesh R (20):
> >>   configs: Move CONFIG_SPI_FLASH into defconfigs
> >>   bitops: Fix GENMASK definition for Sandbox
> >>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
> >>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
> >>   spi: 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: spi-nor-core: Add SPI MEM support
> >>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
> >>   mtd: spi: spi-nor-core: Add SFDP support
> >>   mtd: spi: spi-nor-core: Add back U-Boot specific features
> >>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
> >>   mtd: spi: Switch to new SPI NOR framework
> >>   mtd: spi: Remove unused files
> >>   mtd: spi: Add lightweight SPI flash stack for SPL
> >>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
> >>   configs: Remove SF_DUAL_FLASH
> >>   configs: Don't use SPI_FLASH_BAR as default
> >>   MAINTAINERS: Add an entry for SPI NOR  
> > 
> > Update trivial change on this patch.
> > 
> > Applied to u-boot-spi/master, thanks for the big changes and welcome aboard!
> >   
> 
> Thanks Jagan! Thanks all for testing out this series
> 

Kudos for getting this spi-nor port merged in u-boot!
I hope you'll continue contributing to the Linux stack even though
you're now the maintainer of the uboot version ;-).

Regards,

Boris
Boris Brezillon Feb. 13, 2019, 1:43 p.m. UTC | #7
On Wed, 13 Feb 2019 14:42:57 +0100
Boris Brezillon <boris.brezillon@collabora.com> wrote:

> [PM]

Not so private actually :D.

> Hi Vignesh,
> 
> On Fri, 8 Feb 2019 18:36:05 +0530
> Vignesh R <vigneshr@ti.com> wrote:
> 
> > On 07/02/19 6:13 PM, Jagan Teki wrote:  
> > > On Tue, Feb 5, 2019 at 11:29 AM Vignesh R <vigneshr@ti.com> wrote:    
> > [...]  
> > >>
> > >> Vignesh R (20):
> > >>   configs: Move CONFIG_SPI_FLASH into defconfigs
> > >>   bitops: Fix GENMASK definition for Sandbox
> > >>   spi: spi-mem: Allow use of spi_mem_exec_op for all SPI modes
> > >>   spi: spi-mem: Extend spi_mem_adjust_op_size() to honor max xfer size
> > >>   spi: 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: spi-nor-core: Add SPI MEM support
> > >>   mtd: spi: spi-nor-core: Add 4 Byte addressing support
> > >>   mtd: spi: spi-nor-core: Add SFDP support
> > >>   mtd: spi: spi-nor-core: Add back U-Boot specific features
> > >>   mtd: spi: sf_probe: Add "jedec,spi-nor" compatible string
> > >>   mtd: spi: Switch to new SPI NOR framework
> > >>   mtd: spi: Remove unused files
> > >>   mtd: spi: Add lightweight SPI flash stack for SPL
> > >>   spl: Kconfig: Enable SPI_FLASH_TINY by default for SPL
> > >>   configs: Remove SF_DUAL_FLASH
> > >>   configs: Don't use SPI_FLASH_BAR as default
> > >>   MAINTAINERS: Add an entry for SPI NOR    
> > > 
> > > Update trivial change on this patch.
> > > 
> > > Applied to u-boot-spi/master, thanks for the big changes and welcome aboard!
> > >     
> > 
> > Thanks Jagan! Thanks all for testing out this series
> >   
> 
> Kudos for getting this spi-nor port merged in u-boot!
> I hope you'll continue contributing to the Linux stack even though
> you're now the maintainer of the uboot version ;-).
> 
> Regards,
> 
> Boris