mbox series

[0/7] sunxi: Fix U-Boot proper SPI operation

Message ID 20220111124607.863952-1-andre.przywara@arm.com
Headers show
Series sunxi: Fix U-Boot proper SPI operation | expand

Message

Andre Przywara Jan. 11, 2022, 12:46 p.m. UTC
Hi,

despite U-Boot supporting SPI on Allwinner chips and SPI flash in
general for a while, it wasn't really working well for many sunxi boards.
Booting from SPI is handled by separate SPL code, which works fine, but
the "sf" command in U-Boot proper is often just not operational.

This series tries to improve the situation, by:
- cleaning up the SPI Kconfig situation for sunxi (patch 2)
- adding support for environment in SPI flash (patch 3-5)
- trying to enable more boards for U-Boot-proper SPI flash (patch 6)

As an added bonus there is some whacky code to make the SPI flash usable
in Linux on H6 boards. Marking this as RFC.

Actually even after this series many boards still miss out, because
they are lacking the required "spi0" alias in the DT. We could go with
*-u-boot.dtsi fixes for now (as the SoPine does), but even mainline DT
support wouldn't help, as we are somewhat stuck with DT updates. But
that's a story for another time, let's get this SPI support fixed first.

Cheers,
Andre

Andre Przywara (6):
  sunxi: Kconfig: Fix up SPI configuration
  env: sunxi: Define location in SPI flash
  sunxi: use boot source for determining environment location
  env: sunxi: enable ENV_IS_IN_SPI_FLASH
  sunxi: boards: Enable SPI flash support in U-Boot proper
  sunxi: H6: Enable SPI0 in DT when no eMMC is used

Daniel Wagenknecht (1):
  sunxi: SPI: fix pinmuxing for Allwinner H6 SoCs

 arch/arm/Kconfig                         |   2 +
 arch/arm/mach-sunxi/Kconfig              |  13 ++-
 board/sunxi/board.c                      | 101 +++++++++++++++++++++--
 configs/libretech_all_h3_it_h5_defconfig |   2 -
 configs/libretech_all_h5_cc_h5_defconfig |   2 -
 configs/oceanic_5205_5inmfd_defconfig    |   1 +
 configs/orangepi_pc2_defconfig           |   2 +
 configs/orangepi_r1_defconfig            |   2 +
 configs/orangepi_win_defconfig           |   2 +
 configs/orangepi_zero2_defconfig         |   2 +
 configs/orangepi_zero_defconfig          |   2 +
 configs/pine64-lts_defconfig             |   2 +
 configs/pine_h64_defconfig               |   3 +
 configs/pinecube_defconfig               |   2 +
 configs/sopine_baseboard_defconfig       |   1 +
 drivers/spi/spi-sunxi.c                  |   3 +-
 env/Kconfig                              |   7 +-
 17 files changed, 131 insertions(+), 18 deletions(-)

Comments

Jagan Teki March 10, 2022, 12:05 p.m. UTC | #1
On Tue, Jan 11, 2022 at 6:16 PM Andre Przywara <andre.przywara@arm.com> wrote:
>
> Hi,
>
> despite U-Boot supporting SPI on Allwinner chips and SPI flash in
> general for a while, it wasn't really working well for many sunxi boards.
> Booting from SPI is handled by separate SPL code, which works fine, but
> the "sf" command in U-Boot proper is often just not operational.
>
> This series tries to improve the situation, by:
> - cleaning up the SPI Kconfig situation for sunxi (patch 2)
> - adding support for environment in SPI flash (patch 3-5)
> - trying to enable more boards for U-Boot-proper SPI flash (patch 6)
>
> As an added bonus there is some whacky code to make the SPI flash usable
> in Linux on H6 boards. Marking this as RFC.
>
> Actually even after this series many boards still miss out, because
> they are lacking the required "spi0" alias in the DT. We could go with
> *-u-boot.dtsi fixes for now (as the SoPine does), but even mainline DT
> support wouldn't help, as we are somewhat stuck with DT updates. But
> that's a story for another time, let's get this SPI support fixed first.
>
> Cheers,
> Andre
>
> Andre Przywara (6):
>   sunxi: Kconfig: Fix up SPI configuration
>   env: sunxi: Define location in SPI flash
>   sunxi: use boot source for determining environment location
>   env: sunxi: enable ENV_IS_IN_SPI_FLASH
>   sunxi: boards: Enable SPI flash support in U-Boot proper

Applied to u-boot-spi/master