[U-Boot] [PATCH 0/8] rockchip: Improve SPI-NOR read performance for the RK3399-Q7

Philipp Tomsich philipp.tomsich at theobroma-systems.com
Sun Feb 3 15:17:25 UTC 2019


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



More information about the U-Boot mailing list