The SPI-NOR driver has traditionally been slow enough to impact boot-time from SPI-NOR (which is the recommended storage for u-boot.itb on the RK3399-Q7): transfer for the ~890KB exceeded 0.8s even though the SPI-NOR bitrate was configured to 49.5MBit/s.
This series provides some urgently needed tough love for the SPI driver: - contains a few cleanups - implements a new 16bit-wide transfer mode to better utilise the 32x16bit RXFIFO - increases bus-utilisation to > 94% both for 49.5MBit/s (and, in an experimental branch that allows higher bitrates) for 74.25MBit/s With the entire series applied, we can now load our u-boot.itb in ~0.095s (instead of ~ 0.820s previously). This is still slower than from the on-module eMMC (0.028s) that has an 8-bit wide data-path, yet makes the SPI-NOR finally useful for all customers that want to keep the boot firmware out-of-the-way of the operating system. Philipp Tomsich (8): rockchip: spi: add debug message for delay in CS toggle rockchip: spi: remove unused code and fields in priv rockchip: spi: fix off-by-one in chunk size computation rockchip: spi: consistently use false/true with rkspi_enable_chip rockchip: spi: only wait for completion, if transmitting rockchip: spi: add optimised receive-only implementation rockchip: spi: add driver-data and a 'rxonly_manages_fifo' flag rockchip: spi: make optimised receive-handler unaligned-safe drivers/spi/rk_spi.c | 163 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 127 insertions(+), 36 deletions(-) -- 2.1.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot