arm64: dts: renesas: r8a77951: Add reserved memory region

Message ID 20221114194846.108814-1-detlev.casanova@collabora.com
State New
Headers
Series arm64: dts: renesas: r8a77951: Add reserved memory region |

Commit Message

Detlev Casanova Nov. 14, 2022, 7:48 p.m. UTC
  The 0x3000000 bytes memory region starting at 0x54000000 is
reserved for the lossy_decompression hardware that will try to
decompress any data written in the region.

Mark the region as no-map to prevent linux from using it as RAM.

Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
---
 arch/arm64/boot/dts/renesas/r8a77951.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
  

Comments

Biju Das Nov. 14, 2022, 7:56 p.m. UTC | #1
> -----Original Message-----
> From: Detlev Casanova <detlev.casanova@collabora.com>
> Sent: 14 November 2022 19:49
> To: linux-kernel@vger.kernel.org
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>; Magnus Damm
> <magnus.damm@gmail.com>; Rob Herring <robh+dt@kernel.org>; Krzysztof
> Kozlowski <krzysztof.kozlowski+dt@linaro.org>; open list:ARM/RENESAS
> ARCHITECTURE <linux-renesas-soc@vger.kernel.org>; open list:OPEN
> FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
> <devicetree@vger.kernel.org>; Detlev Casanova
> <detlev.casanova@collabora.com>
> Subject: [PATCH] arm64: dts: renesas: r8a77951: Add reserved memory
> region
> 
> The 0x3000000 bytes memory region starting at 0x54000000 is reserved
> for the lossy_decompression hardware that will try to decompress any
> data written in the region.
> 
> Mark the region as no-map to prevent linux from using it as RAM.
> 
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> ---
>  arch/arm64/boot/dts/renesas/r8a77951.dtsi | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> index 07c8763c1e77..171833d91313 100644
> --- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> @@ -290,6 +290,18 @@ CPU_SLEEP_1: cpu-sleep-1 {
>  		};
>  	};
> 
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		/* device specific region for Lossy Decompression */
> +		lossy_decompress: memory-region@54000000 {
> +			no-map;
> +			reg = <0x00000000 0x54000000 0x0 0x03000000>;
> +		};
> +	};

Is not part of TFA[1]?

[1] https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/plat/renesas/rcar/bl2_plat_setup.c#n174

> +
>  	extal_clk: extal {
>  		compatible = "fixed-clock";
>  		#clock-cells = <0>;
> --
> 2.38.1
  
Geert Uytterhoeven Nov. 14, 2022, 7:57 p.m. UTC | #2
Hi Detlev,

On Mon, Nov 14, 2022 at 8:48 PM Detlev Casanova
<detlev.casanova@collabora.com> wrote:
> The 0x3000000 bytes memory region starting at 0x54000000 is
> reserved for the lossy_decompression hardware that will try to
> decompress any data written in the region.
>
> Mark the region as no-map to prevent linux from using it as RAM.
>
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>

Thanks for your patch!

> --- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> @@ -290,6 +290,18 @@ CPU_SLEEP_1: cpu-sleep-1 {
>                 };
>         };
>
> +       reserved-memory {
> +               #address-cells = <2>;
> +               #size-cells = <2>;
> +               ranges;
> +
> +               /* device specific region for Lossy Decompression */
> +               lossy_decompress: memory-region@54000000 {
> +                       no-map;
> +                       reg = <0x00000000 0x54000000 0x0 0x03000000>;
> +               };
> +       };

This depends on the firmware/boot loader stack.  If it configures a
Lossy Decompression region, it should make sure to pass this
info through the various boot loader components to Linux,
just like is already done with the memory regions, RPC-IF state,
and OpTee configuration.

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
  
Detlev Casanova Nov. 14, 2022, 8:03 p.m. UTC | #3
On Monday, November 14, 2022 2:57:21 P.M. EST Geert Uytterhoeven wrote:
> Hi Detlev,
> 
> On Mon, Nov 14, 2022 at 8:48 PM Detlev Casanova
> 
> <detlev.casanova@collabora.com> wrote:
> > The 0x3000000 bytes memory region starting at 0x54000000 is
> > reserved for the lossy_decompression hardware that will try to
> > decompress any data written in the region.
> > 
> > Mark the region as no-map to prevent linux from using it as RAM.
> > 
> > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> 
> Thanks for your patch!
> 
> > --- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
> > @@ -290,6 +290,18 @@ CPU_SLEEP_1: cpu-sleep-1 {
> > 
> >                 };
> >         
> >         };
> > 
> > +       reserved-memory {
> > +               #address-cells = <2>;
> > +               #size-cells = <2>;
> > +               ranges;
> > +
> > +               /* device specific region for Lossy Decompression */
> > +               lossy_decompress: memory-region@54000000 {
> > +                       no-map;
> > +                       reg = <0x00000000 0x54000000 0x0 0x03000000>;
> > +               };
> > +       };
> 
> This depends on the firmware/boot loader stack.  If it configures a
> Lossy Decompression region, it should make sure to pass this
> info through the various boot loader components to Linux,
> just like is already done with the memory regions, RPC-IF state,
> and OpTee configuration.

Thanks for your fast answer ! I didn't realise ATF was doing that, I probably 
have a configuration issue in ATF then, I'll rebuild and start from there.

Thanks !

> Gr{oetje,eeting}s,
> 
>                         Geert
  

Patch

diff --git a/arch/arm64/boot/dts/renesas/r8a77951.dtsi b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
index 07c8763c1e77..171833d91313 100644
--- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
@@ -290,6 +290,18 @@  CPU_SLEEP_1: cpu-sleep-1 {
 		};
 	};
 
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		/* device specific region for Lossy Decompression */
+		lossy_decompress: memory-region@54000000 {
+			no-map;
+			reg = <0x00000000 0x54000000 0x0 0x03000000>;
+		};
+	};
+
 	extal_clk: extal {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;