Hi all,

On Renesas R-Car Gen3 platforms, the SPI Multi I/O Bus Controllers
(RPC-IF) provide access to HyperFlash or QSPI storage.  On production
systems, they are typically locked by the TF-A firmware, unless TF-A is
built with RCAR_RPC_HYPERFLASH_LOCKED=0.  When unlocked, TF-A
communicates this to subsequent software by passing a DT fragment that
sets the "status" property of the RPC-IF device node to "okay".

Unfortunately there are several issues preventing this from working all
the way to Linux:
  1. TF-A (and U-Boot on the receiving side) uses a device node name
     that does not conform to the DT specification nor the DT bindings
     for RPC-IF,
  2. While U-Boot receives the RPC-IF enablement from TF-A, it does not
     propagate it to Linux yet,
  3. The DTS files that are part of Linux do not have RPC HyperFlash
     support yet.

The first issue in TF-A is handled by [1].

This patch series takes care of the first and second issue in U-Boot, by
renaming the RPC-IF device node, and by propagating the enablement from
TF-A, if present, to Linux.  The third patch updates the RPC-IF
compatible values to match the actual DT bindings, but this is not
critical for operation, and can be postponed (e.g. by syncing DTS with
Linux v5.19).

Patches to enable RPC-IF support in Linux are available at [2].

Thanks for your comments!

[1] "[PATCH TF-A] fix(plat/rcar3): Fix RPC-IF device node name"
    
https://lore.kernel.org/r/3685623bed84674039adb61e723288d359ab0a50.1648544199.git.geert+rene...@glider.be
[2] "[PATCH 0/5] arm64: dts: renesas: rcar-gen3: Enable HyperFlash support"
    https://lore.kernel.org/r/cover.1648548339.git.geert+rene...@glider.be

Geert Uytterhoeven (3):
  ARM: dts: rmobile: Fix RPC-IF device node names
  ARM: renesas: Propagate RPC-IF enablement to subsequent software
  [RFC] renesas: Fix RPC-IF compatible values

 arch/arm/dts/r7s72100-gr-peach-u-boot.dts |  4 +-
 arch/arm/dts/r8a774c0-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77950-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77960-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77965-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77970-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77980-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77990-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a77995-u-boot.dtsi         |  4 +-
 arch/arm/dts/r8a779a0-u-boot.dtsi         |  2 +-
 board/renesas/rcar-common/common.c        | 46 ++++++++++++++++++++++-
 drivers/mtd/renesas_rpc_hf.c              |  3 +-
 drivers/spi/renesas_rpc_spi.c             |  9 +----
 13 files changed, 67 insertions(+), 29 deletions(-)

-- 
2.25.1

Gr{oetje,eeting}s,

                                                Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                                            -- Linus Torvalds

Reply via email to