
Am 21.12.2018 um 12:11 schrieb Vignesh R:
Hi Simon, [...]
Hi Vignesh,
I just did a quick test on this but it fails to boot. I guess this could be a size problem.
I guess. SPL_SPI_FLASH_TINY would help with SPL size issue here.
Yes, after enabling that it works. With the tiny framework, I get ~1.5KiB reduction compared to current mainline.
Unfortunately, the socfpga gen5 config does not correctly check SPL size currently. I'll have to work on that. I'll test your patch with a more limited config when I find the time.
Okay, thanks!
I can successfully boot with your v2 patch applied with the standard and the tiny framework. However, allow me some more time to check SFDP (and maybe BAR) and also to check that the correct opcodes are used (stateless 4-byte opcodes should be used).
Regards, Simon
Regards Vignesh
Regards, Simon
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 -- 2.20.1