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

Jagan Teki jagan at amarulasolutions.com
Thu Feb 7 12:43:02 UTC 2019


On Tue, Feb 5, 2019 at 11:29 AM Vignesh R <vigneshr at 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.


More information about the U-Boot mailing list