u-boot/drivers/spi
Jagan Teki dbbdc81c60 spi: rk: Limit transfers to (64K - 1) bytes
The Rockchip SPI controller's length register only supports 16-bits,
yielding a maximum length of 64KiB (the CTRLR1 register holds "length -
1"). Trying to transfer more than that (e.g., with a large SPI flash
read) will cause the driver to hang.

Now, it seems that while theoretically we should be able to program
CTRLR1 with 0xffff, and get a 64KiB transfer, but that also seems to
cause the core to choke, so stick with a maximum of 64K - 1 bytes --
i.e., 0xffff.

Note, that the size is further divided into 'minus 1' while writing
into CTRLR1.

This change fixed two different read issues,

1. sf read failure when with > 0x10000

2. Boot from SPI flash failed during spi_flash_read call in
   common/spl/spl_spi.c

Observed and Tested in
- Rockpro64 with Gigadevice flash
- ROC-RK3399-PC with Winbond flash

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2019-12-27 17:47:26 +05:30
..
altera_spi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
atcspi200_spi.c spi: atcspi200: Change include order 2019-05-09 00:42:55 +05:30
ath79_spi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
atmel-quadspi.c spi: Add Atmel QuadSPI driver 2019-07-09 09:26:43 +03:00
atmel_spi.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
atmel_spi.h Revert "spi: atmel: Drop non-dm code" 2018-04-07 09:19:00 -04:00
bcm63xx_hsspi.c dm: spi: Change cs_info op to return -EINVAL for invalid cs num 2019-10-25 00:48:31 +05:30
bcm63xx_spi.c dm: spi: Change cs_info op to return -EINVAL for invalid cs num 2019-10-25 00:48:31 +05:30
bcmstb_spi.c board: arm: Add support for Broadcom BCM7445 2018-07-10 16:55:57 -04:00
cadence_qspi.c spi: cadence_qspi: support DM_CLK 2019-11-20 23:46:11 +01:00
cadence_qspi.h spi: cadence_qspi: support DM_CLK 2019-11-20 23:46:11 +01:00
cadence_qspi_apb.c spi: cadence_qspi: Add quad write support 2019-04-12 10:54:03 +05:30
cf_spi.c drivers: spi: cf_spi: convert to driver model 2019-05-24 08:11:57 -04:00
davinci_spi.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
designware_spi.c spi: designware_spi: Disable and free clock when remove driver 2019-10-25 00:48:32 +05:30
exynos_spi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
fsl_dspi.c spi: fsl_dspi fix to stop extra transmissions 2019-04-12 11:24:24 +05:30
fsl_espi.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
fsl_qspi.c spi: fsl_qspi: Add support for QSPI on iMX7ULP 2019-10-08 16:36:37 +02:00
fsl_qspi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ich.c x86: ich-spi: Convert driver to spi-mem ops 2019-08-09 22:24:02 +08:00
ich.h x86: ich-spi: Convert driver to spi-mem ops 2019-08-09 22:24:02 +08:00
Kconfig configs: spi: Add the SPI_FLASH_BAR for ESPI 2019-11-08 16:32:08 +05:30
kirkwood_spi.c km/spi: remove deprecated SPI flash driver code for KM Kirkwood boards 2019-07-11 10:58:03 +02:00
lpc32xx_ssp.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
Makefile spi: Drop obsolete mtk_qspi driver references 2019-07-25 18:52:20 +05:30
meson_spifc.c spi: Add Amlogic Meson SPI Flash Controller driver 2018-11-24 14:41:12 +05:30
mpc8xx_spi.c spi, mpc8xx: migrate to DM_SPI 2018-12-03 10:44:10 -05:00
mpc8xxx_spi.c spi: mpc8xxx: Convert to DM 2019-06-10 17:59:49 +05:30
mscc_bb_spi.c mips: spi: mscc: Add fast bitbang SPI driver 2019-01-16 13:56:43 +01:00
mt7621_spi.c spi: mt7621-spi: restore default register value after each xfer 2019-10-25 17:20:44 +02:00
mtk_snfi_spi.c spi: add spi-mem driver for MediaTek MT7629 SoC 2019-07-25 18:52:12 +05:30
mvebu_a3700_spi.c spi: mvebu_a3700_spi: Fix clock prescale computation 2019-09-16 08:09:22 +05:30
mxc_spi.c spi: imx: work with cs greater 0 2019-06-11 10:42:48 +02:00
mxs_spi.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
omap3_spi.c spi: omap3: fix set_wordlen() reading from incorrect address for CHCONF 2019-02-28 14:21:46 -05:00
pic32_spi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pl022_spi.c dm: platform_data: spi: s/pl022_spi.h/spi_pl022.h 2018-11-27 21:06:46 +05:30
renesas_rpc_spi.c spi: rpc: Add support for operation without clock framework 2019-05-07 05:41:32 +02:00
rk_spi.c spi: rk: Limit transfers to (64K - 1) bytes 2019-12-27 17:47:26 +05:30
rk_spi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sandbox_spi.c spi: Add support for memory-mapped flash 2019-11-03 07:20:26 +08:00
sh_qspi.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
sh_spi.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
sh_spi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
soft_spi.c spi: soft_spi: Fix data abort if slave is not probed 2019-09-16 08:09:22 +05:30
soft_spi_legacy.c spi: Remove unused spi_init 2018-11-27 21:06:53 +05:30
spi-emul-uclass.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spi-mem-nodm.c spi: Add non DM version of SPI_MEM 2019-02-07 15:33:21 +05:30
spi-mem.c spi: spi-mem: Fix read data size issue 2019-07-18 17:11:16 +05:30
spi-sifive.c spi: Add SiFive SPI driver 2019-07-18 17:11:16 +05:30
spi-sunxi.c spi: Rename sun4i_spi.c into spi-sunxi.c 2019-03-04 18:08:56 +05:30
spi-uclass.c spi: Add support for memory-mapped flash 2019-11-03 07:20:26 +08:00
spi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stm32_qspi.c spi: stm32_qspi: Remove "st, stm32-qspi" compatible string 2019-07-22 11:04:52 +02:00
stm32_spi.c spi: stm32: Fix warnings when compiling with W=1 2019-07-12 11:50:57 +02:00
tegra20_sflash.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
tegra20_slink.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
tegra114_spi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
tegra210_qspi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
tegra_spi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ti_qspi.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
uniphier_spi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
xilinx_spi.c spi: xilinx_spi: convert to livetree 2018-07-16 14:01:20 +05:30
zynq_qspi.c spi: zynq_qspi: Fixed incorrect return value error 2018-06-25 14:13:57 +05:30
zynq_spi.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
zynqmp_gqspi.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00