[0/6] sunxi: SPL SPI booting: Enable R40 and H6 SoCs

Message ID 20200106012915.2772-1-andre.przywara@arm.com
Headers show
Series
  • sunxi: SPL SPI booting: Enable R40 and H6 SoCs
Related show

Message

Andre Przywara Jan. 6, 2020, 1:29 a.m.
This series enables the SPI booting feature for Allwinner R40 and H6
SoCs. To achieve this, we enable our spl_spi_sunxi.c driver to deal
with those two SoCs. The R40 is pretty straightforward, as it just needs
its base address adjusted. This is prepared in patch 2/6 and finalised
in patch 4/6.
For the H6, on top of yet another different base address, the new clocks
and slightly different pinmux setup need to be cared for.
Patch 3/6 and 5/6 take care of that.
Patch 6/6 enables this feature for the Pine H64 board, which comes with
soldered SPI flash.
Patch 1/6 deals with some annoyance in enabling SPI boot on new boards.

This has been tested on the Pine H64 board and a Bananapi M2 Berry
(with SPI flash connected to the SPI0-PortC header pins).
For the existing SPI boot platforms this does not change the code size,
as the toolchain is clever enough to optimise this properly.

There is a similar series to enable SPI support for the sunxi-fel tool,
which was used to test this. I will post this ASAP.

Cheers,
Andre.

Andre Przywara (6):
  sunxi: move CONFIG_SYS_SPI_U_BOOT_OFFS out of defconfig
  sunxi: SPL SPI: Split off SPI0 base address
  sunxi: SPL SPI: Introduce is_new_gen_spi()
  sunxi: SPL SPI: Add SPI boot support for the Allwinner R40 SoC
  sunxi: SPL SPI: Add SPI boot support for the Allwinner H6 SoC
  sunxi: Pine H64: Enable SPI booting in defconfig

 arch/arm/mach-sunxi/Kconfig                |   2 +-
 arch/arm/mach-sunxi/spl_spi_sunxi.c        | 153 +++++++++++++++++++----------
 common/spl/Kconfig                         |   1 +
 configs/A20-OLinuXino-Lime2-eMMC_defconfig |   1 -
 configs/oceanic_5205_5inmfd_defconfig      |   1 -
 configs/orangepi_pc2_defconfig             |   1 -
 configs/orangepi_r1_defconfig              |   1 -
 configs/orangepi_win_defconfig             |   1 -
 configs/orangepi_zero_defconfig            |   1 -
 configs/pine64-lts_defconfig               |   1 -
 configs/pine_h64_defconfig                 |   1 +
 configs/sopine_baseboard_defconfig         |   1 -
 12 files changed, 102 insertions(+), 63 deletions(-)