All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Magnus Damm <magnus.damm@gmail.com>
Cc: Marek Vasut <marek.vasut+renesas@gmail.com>,
	linux-renesas-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH 0/5] arm64: dts: renesas: rcar-gen3: Enable HyperFlash support
Date: Tue, 29 Mar 2022 14:20:00 +0200	[thread overview]
Message-ID: <cover.1648548339.git.geert+renesas@glider.be> (raw)

	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 two issues are handled by patches for TF-A[1] and U-Boot[2].

This patch series takes care of the third issue, by adding device nodes
for the RPC-IF interfaces and the HyperFlash devices to the various DTS
files.  The "status" properties of the RPC-IF device nodes are left
"disabled", and are to be updated by U-Boot when unlocked.

HyperFlash operation has been tested on a variety of SoCs (R-Car H3
ES1.1 & ES2.0, M3-W ES1.0, M3-N ES1.0, E3 ES1.0, and D3 ES1.1) and
boards (Salvator-XS, ULCB, Ebisu-4D, and Draak).

For testing, this series and its Linux dependencies (HF fix[3], clk[4],
pinctrl[5]) can be found at[6].

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+renesas@glider.be

[2] "[PATCH u-boot 0/3] renesas: Fix RPC-IF enablement"
    https://lore.kernel.org/r/cover.1648544792.git.geert+renesas@glider.be

[3] "[PATCH v3] memory: renesas-rpc-if: Fix HF/OSPI data transfer in
     Manual mode"
    https://lore.kernel.org/r/ad6ef2af754c8163f825d3a199d64f910d63f802.1648545212.git.geert+renesas@glider.be

[4] "[PATCH 0/2] clk: renesas: r8a7799[05]: Add RPC clocks"
    https://lore.kernel.org/r/cover.1648546700.git.geert+renesas@glider.be

[5] "[PATCH 0/2] pinctrl: renesas: r8a7799[05]: Add RPC pins, groups,
     and functions"
    https://lore.kernel.org/r/cover.1648547080.git.geert+renesas@glider.be

[6] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/rcar3-rpc-hf-v1

Geert Uytterhoeven (5):
  arm64: dts: renesas: rcar-gen3: Add RPC device nodes
  arm64: dts: renesas: draak: Add RPC HyperFlash device node
  arm64: dts: renesas: ebisu: Add RPC HyperFlash device node
  arm64: dts: renesas: salvator-common: Add RPC HyperFlash device node
  arm64: dts: renesas: ulcb: Add RPC HyperFlash device node

 arch/arm64/boot/dts/renesas/draak.dtsi        | 58 +++++++++++++++++++
 arch/arm64/boot/dts/renesas/ebisu.dtsi        | 58 +++++++++++++++++++
 arch/arm64/boot/dts/renesas/r8a77951.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77960.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77961.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77965.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77990.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77995.dtsi     | 16 +++++
 .../boot/dts/renesas/salvator-common.dtsi     | 49 ++++++++++++++++
 arch/arm64/boot/dts/renesas/ulcb.dtsi         | 49 ++++++++++++++++
 10 files changed, 310 insertions(+)

-- 
2.25.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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

WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Magnus Damm <magnus.damm@gmail.com>
Cc: Marek Vasut <marek.vasut+renesas@gmail.com>,
	linux-renesas-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH 0/5] arm64: dts: renesas: rcar-gen3: Enable HyperFlash support
Date: Tue, 29 Mar 2022 14:20:00 +0200	[thread overview]
Message-ID: <cover.1648548339.git.geert+renesas@glider.be> (raw)

	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 two issues are handled by patches for TF-A[1] and U-Boot[2].

This patch series takes care of the third issue, by adding device nodes
for the RPC-IF interfaces and the HyperFlash devices to the various DTS
files.  The "status" properties of the RPC-IF device nodes are left
"disabled", and are to be updated by U-Boot when unlocked.

HyperFlash operation has been tested on a variety of SoCs (R-Car H3
ES1.1 & ES2.0, M3-W ES1.0, M3-N ES1.0, E3 ES1.0, and D3 ES1.1) and
boards (Salvator-XS, ULCB, Ebisu-4D, and Draak).

For testing, this series and its Linux dependencies (HF fix[3], clk[4],
pinctrl[5]) can be found at[6].

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+renesas@glider.be

[2] "[PATCH u-boot 0/3] renesas: Fix RPC-IF enablement"
    https://lore.kernel.org/r/cover.1648544792.git.geert+renesas@glider.be

[3] "[PATCH v3] memory: renesas-rpc-if: Fix HF/OSPI data transfer in
     Manual mode"
    https://lore.kernel.org/r/ad6ef2af754c8163f825d3a199d64f910d63f802.1648545212.git.geert+renesas@glider.be

[4] "[PATCH 0/2] clk: renesas: r8a7799[05]: Add RPC clocks"
    https://lore.kernel.org/r/cover.1648546700.git.geert+renesas@glider.be

[5] "[PATCH 0/2] pinctrl: renesas: r8a7799[05]: Add RPC pins, groups,
     and functions"
    https://lore.kernel.org/r/cover.1648547080.git.geert+renesas@glider.be

[6] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/rcar3-rpc-hf-v1

Geert Uytterhoeven (5):
  arm64: dts: renesas: rcar-gen3: Add RPC device nodes
  arm64: dts: renesas: draak: Add RPC HyperFlash device node
  arm64: dts: renesas: ebisu: Add RPC HyperFlash device node
  arm64: dts: renesas: salvator-common: Add RPC HyperFlash device node
  arm64: dts: renesas: ulcb: Add RPC HyperFlash device node

 arch/arm64/boot/dts/renesas/draak.dtsi        | 58 +++++++++++++++++++
 arch/arm64/boot/dts/renesas/ebisu.dtsi        | 58 +++++++++++++++++++
 arch/arm64/boot/dts/renesas/r8a77951.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77960.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77961.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77965.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77990.dtsi     | 16 +++++
 arch/arm64/boot/dts/renesas/r8a77995.dtsi     | 16 +++++
 .../boot/dts/renesas/salvator-common.dtsi     | 49 ++++++++++++++++
 arch/arm64/boot/dts/renesas/ulcb.dtsi         | 49 ++++++++++++++++
 10 files changed, 310 insertions(+)

-- 
2.25.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2022-03-29 12:20 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 12:20 Geert Uytterhoeven [this message]
2022-03-29 12:20 ` [PATCH 0/5] arm64: dts: renesas: rcar-gen3: Enable HyperFlash support Geert Uytterhoeven
2022-03-29 12:20 ` [PATCH 1/5] arm64: dts: renesas: rcar-gen3: Add RPC device nodes Geert Uytterhoeven
2022-03-29 12:20   ` Geert Uytterhoeven
2022-04-07  7:03   ` Wolfram Sang
2022-04-07  7:03     ` Wolfram Sang
2022-03-29 12:20 ` [PATCH 2/5] arm64: dts: renesas: draak: Add RPC HyperFlash device node Geert Uytterhoeven
2022-03-29 12:20   ` Geert Uytterhoeven
2022-04-07  6:56   ` Wolfram Sang
2022-04-07  6:56     ` Wolfram Sang
2022-04-07  7:01   ` Wolfram Sang
2022-04-07  7:01     ` Wolfram Sang
2022-04-07  7:04   ` Wolfram Sang
2022-04-07  7:04     ` Wolfram Sang
2022-03-29 12:20 ` [PATCH 3/5] arm64: dts: renesas: ebisu: " Geert Uytterhoeven
2022-03-29 12:20   ` Geert Uytterhoeven
2022-04-07  7:04   ` Wolfram Sang
2022-04-07  7:04     ` Wolfram Sang
2022-03-29 12:20 ` [PATCH 4/5] arm64: dts: renesas: salvator-common: " Geert Uytterhoeven
2022-03-29 12:20   ` Geert Uytterhoeven
2022-04-07  7:08   ` Wolfram Sang
2022-04-07  7:08     ` Wolfram Sang
2022-04-11 13:23     ` Geert Uytterhoeven
2022-04-11 13:23       ` Geert Uytterhoeven
2022-03-29 12:20 ` [PATCH 5/5] arm64: dts: renesas: ulcb: " Geert Uytterhoeven
2022-03-29 12:20   ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1648548339.git.geert+renesas@glider.be \
    --to=geert+renesas@glider.be \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=marek.vasut+renesas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.