[PATCH v12 0/9] spi-nor: Add parallel and stacked memories support
Michal Simek
michal.simek at amd.com
Tue Sep 3 15:46:42 CEST 2024
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 at 0: has no valid 'reg' property (-12)
> jedec_spi_nor spi.bin at 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
More information about the U-Boot
mailing list