On 9/2/24 12:26, Venkatesh Yadav Abbarapu wrote:
This series adds support for Xilinx qspi parallel and
stacked memeories.

In parallel mode, the current implementation assumes that a maximum
of two flashes are connected. The QSPI controller splits the data
evenly between both the flashes so, both the flashes that are connected
in parallel mode should be identical.
During each operation SPI-NOR sets 0th bit for CS0 & 1st bit for CS1 in
nor->flags.

In stacked mode the current implementation assumes that a maximum of two
flashes are connected and both the flashes are of same make but can differ
in sizes. So, except the sizes all other flash parameters of both the flashes
are identical.

Spi-nor will pass on the appropriate flash select flag to low level driver,
and it will select pass all the data to that particular flash.

Write operation in parallel mode are performed in page size * 2 chunks as
each write operation results in writing both the flashes. For doubling the
address space each operation is performed at addr/2 flash offset, where addr
is the address specified by the user.

Similarly for read and erase operations it will read from both flashes, so
size and offset are divided by 2 and send to flash.

Changes in v2:
- Fixed the compilation issues.
Changes in v3:
- Fixed the CI issues.
Changes in v4:
- Removed the dio,dummy_bytes variables from zynq_qspi driver.
- Fix the compilation issue by including the DM_SPI config.
Changes in v5:
- Fixed the issue reported by buildman.
Changes in v6:
- Fixed the issues reported while running the sandbox test cases.
Changes in v7:
- Fixed the issues reported while running these da850evm_defconfig,
   imx28_xea_defconfig configs.
- Fixed the issue when DM_SPI config is disabled.
- Fixed the issue while running the sandbox_noinst_defconfig with spl
   ./spl/u-boot-spl -d arch/sandbox/dts/test.dtb
    jedec_spi_nor spi.bin@0: has no valid 'reg' property (-12)
    jedec_spi_nor spi.bin@1: has no valid 'reg' property (-12)
    ### ERROR ### Please RESET the board ### Changes in v8:
- Fixed the compilation issue with imx28_xea_defconfig.
- Fixed the SPL size issue with the axm and taurus defconfigs.
- Rebased the patches on top of next branch.
Changes in v9:
- Updated the commit log why SPL_FIT is being enabled.
Changes in v10:
- Added the new config SPI_ADVANCE to fix the issue while enabling 
imx28_xea_defconfig.
Changes in v11:
- Removed the unused variable, corrected the type of variable and replaced 
memcpy with memmove.
Changes in v12:
- Fixed the compilation issue with mx6sabresd defconfig, as the binary size got 
exceeded.

Ashok Reddy Soma (2):
   mtd: spi-nor: Add parallel memories support for read_sr and read_fsr
   mtd: spi-nor: Add parallel and stacked memories support in read_bar
     and write_bar

Venkatesh Yadav Abbarapu (7):
   mtd: spi-nor: Add parallel and stacked memories support
   spi: spi-uclass: Read chipselect and restrict capabilities
   spi: zynqmp_gqspi: Add parallel memories support in GQSPI driver
   spi: zynq_qspi: Add parallel memories support in QSPI driver
   spi: Add the spi advance options for non SPL
   config: xea: Enable the SPI_ADVANCE config option
   config: mx6sabresd: Default don't enable the flash lock

  configs/imx28_xea_defconfig    |   1 +
  configs/mx6sabresd_defconfig   |   1 +
  drivers/mtd/spi/sandbox.c      |   2 +-
  drivers/mtd/spi/spi-nor-core.c | 400 ++++++++++++++++++++++++++++-----
  drivers/spi/Kconfig            |   8 +
  drivers/spi/altera_spi.c       |   4 +-
  drivers/spi/atcspi200_spi.c    |   2 +-
  drivers/spi/ath79_spi.c        |   2 +-
  drivers/spi/atmel_spi.c        |   6 +-
  drivers/spi/bcm63xx_hsspi.c    |  42 ++--
  drivers/spi/bcm63xx_spi.c      |   6 +-
  drivers/spi/bcmbca_hsspi.c     |  34 +--
  drivers/spi/cf_spi.c           |   6 +-
  drivers/spi/davinci_spi.c      |   8 +-
  drivers/spi/fsl_dspi.c         |  18 +-
  drivers/spi/fsl_espi.c         |   4 +-
  drivers/spi/fsl_qspi.c         |   4 +-
  drivers/spi/gxp_spi.c          |   2 +-
  drivers/spi/mpc8xx_spi.c       |   4 +-
  drivers/spi/mpc8xxx_spi.c      |  10 +-
  drivers/spi/mscc_bb_spi.c      |   4 +-
  drivers/spi/mxc_spi.c          |   6 +-
  drivers/spi/npcm_fiu_spi.c     |  14 +-
  drivers/spi/nxp_fspi.c         |   2 +-
  drivers/spi/octeon_spi.c       |   2 +-
  drivers/spi/omap3_spi.c        |   4 +-
  drivers/spi/pic32_spi.c        |   2 +-
  drivers/spi/rk_spi.c           |   4 +-
  drivers/spi/rockchip_sfc.c     |   2 +-
  drivers/spi/spi-aspeed-smc.c   |  28 +--
  drivers/spi/spi-mxic.c         |   6 +-
  drivers/spi/spi-qup.c          |   4 +-
  drivers/spi/spi-sifive.c       |   6 +-
  drivers/spi/spi-sn-f-ospi.c    |   2 +-
  drivers/spi/spi-sunxi.c        |   6 +-
  drivers/spi/spi-synquacer.c    |   4 +-
  drivers/spi/spi-uclass.c       |  34 ++-
  drivers/spi/stm32_qspi.c       |   2 +-
  drivers/spi/stm32_spi.c        |   4 +-
  drivers/spi/ti_qspi.c          |  14 +-
  drivers/spi/xilinx_spi.c       |   6 +-
  drivers/spi/zynq_qspi.c        | 121 ++++++++--
  drivers/spi/zynq_spi.c         |   6 +-
  drivers/spi/zynqmp_gqspi.c     | 141 ++++++++++--
  include/linux/mtd/spi-nor.h    |  12 +
  include/spi.h                  |  23 +-
  lib/acpi/acpi_device.c         |   2 +-
  47 files changed, 794 insertions(+), 231 deletions(-)


First of all this series is passing gitlab CI. You can look at
https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/pipelines/22221

Second I have run buildman over imx28 and there is issue with bisecting.
I think you should fix it to make tree bisectable.

Summary of 10 commits for 2 boards (2 threads, 6 jobs per thread)
01: Merge tag 'v2024.10-rc4' into next
02: config: mx6sabresd: Default don't enable the flash lock
03: mtd: spi-nor: Add parallel and stacked memories support
       arm: (for 2/2 boards) all +1455.0 bss +4.0 rodata +35.0 text +1416.0
            imx28_xea      : all +1455 bss +4 rodata +35 text +1416
            imx28_xea_sb   : all +1455 bss +4 rodata +35 text +1416
04: mtd: spi-nor: Add parallel memories support for read_sr and read_fsr
       arm: (for 2/2 boards) all +124.0 text +124.0
            imx28_xea_sb   : all +128 text +128
            imx28_xea      : all +120 text +120
05: mtd: spi-nor: Add parallel and stacked memories support in read_bar and write_bar
06: spi: spi-uclass: Read chipselect and restrict capabilities
       arm:  +   imx28_xea
+drivers/core/ofnode.o: In function `ofnode_get_property':
+build/../drivers/core/ofnode.c:1191: undefined reference to `fdt_getprop'
+make[2]: *** [../scripts/Makefile.spl:532: spl/u-boot-spl] Error 1
+make[1]: *** [Makefile:2097: spl/u-boot-spl] Error 2
+make: *** [Makefile:177: sub-make] Error 2
       arm: (for 2/2 boards) all +301.0 bss -4.0 rodata +85.0 text +220.0
            imx28_xea      : all +305 bss -4 rodata +85 text +224
            imx28_xea_sb   : all +297 bss -4 rodata +85 text +216
07: spi: zynqmp_gqspi: Add parallel memories support in GQSPI driver
08: spi: zynq_qspi: Add parallel memories support in QSPI driver
09: spi: Add the spi advance options for non SPL
       arm:     imx28_xea
-drivers/core/ofnode.o: In function `ofnode_get_property':
-build/../drivers/core/ofnode.c:1191: undefined reference to `fdt_getprop'
-make[2]: *** [../scripts/Makefile.spl:532: spl/u-boot-spl] Error 1
-make[1]: *** [Makefile:2097: spl/u-boot-spl] Error 2
-make: *** [Makefile:177: sub-make] Error 2
10: config: xea: Enable the SPI_ADVANCE config option
       arm: (for 2/2 boards) all -72.0 bss +2.0 rodata -22.0 text -52.0
            imx28_xea      : all -144 bss +4 rodata -44 text -104

M

Reply via email to