[PATCH] arm64: dts: renesas: r8a78000: Describe all reserved memory

Geert Uytterhoeven geert at linux-m68k.org
Mon May 18 00:18:16 PDT 2026


Hi Marek,

On Sun, 17 May 2026 at 18:32, Marek Vasut
<marek.vasut+renesas at mailbox.org> wrote:
> Fully describe all available DRAM in the DT, and describe regions which
> are not accessible because they are used by firmware in reserved-memory
> node.
>
> Replace first memory bank memory at 60600000 with memory at 40000000 and a
> 518 MiB long reserved-memory no-map subnode. This memory region is used
> by other cores in the system.
>
> Reserve 32 kiB of memory at 0x8c100000 for parameters shared by IPL,
> SCP, TFA BL31 and TEE.
>
> Reserve 512 kiB of memory at 0x8c200000 for TFA BL31. The upcoming
> upstream TFA 2.15 BL31 uses memory from 0x8c200000..0x8c242fff, the
> round up to 512 kiB is slight future proofing.
>
> Reserve 32 MiB of memory at 0x8c400000 for OPTEE-OS, which is the
> entire OPTEE-OS TZ protected DRAM area.
>
> Neither the TFA BL31 nor OPTEE-OS do modify the DT passed to Linux in
> any way with any new reserved-memory {} node to reserve memory areas
> used by the TFA BL31 or OPTEE-OS to prevent the next stage from using
> those areas, which lets Linux use all of the available DRAM as it is
> described in the DT that was passed in by U-Boot, including the areas
> that are newly utilized by TFA BL31 or OPTEE-OS.
>
> In case of high DRAM utilization, unless the memory used by TFA BL31
> or OPTEE-OS is properly reserved, Linux may use and corrupt the memory
> used by TFA BL31 or OPTEE-OS, which would lead to the system becoming
> unresponsive.
>
> Fixes: ad142a4ef710 ("arm64: dts: renesas: r8a78000: Add initial Ironhide board support")
> Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>

Thanks for your patch!

> --- a/arch/arm64/boot/dts/renesas/r8a78000-ironhide.dts
> +++ b/arch/arm64/boot/dts/renesas/r8a78000-ironhide.dts
> @@ -20,10 +20,9 @@ chosen {
>                 stdout-path = "serial0:1843200n8";
>         };
>
> -       memory at 60600000 {
> +       memory at 40000000 {
>                 device_type = "memory";
> -               /* first 518MiB is reserved for other purposes. */
> -               reg = <0x0 0x60600000 0x0 0x5fa00000>;
> +               reg = <0x0 0x40000000 0x0 0x80000000>;
>         };
>
>         memory at 1080000000 {
> @@ -65,6 +64,36 @@ memory at 1e00000000 {
>                 device_type = "memory";
>                 reg = <0x1e 0x00000000 0x1 0x00000000>;
>         };
> +
> +       reserved-memory {
> +               #address-cells = <2>;
> +               #size-cells = <2>;
> +               ranges;
> +
> +               /* First 518 MiB is reserved for other purposes. */
> +               firmware at 40000000 {
> +                       reg = <0x0 0x40000000 0x0 0x20600000>;
> +                       no-map;
> +               };
> +
> +               /* Parameters set by IPL. */
> +               parameters at 8c100000 {
> +                       reg = <0x0 0x8c100000 0x0 0x00008000>;
> +                       no-map;
> +               };
> +
> +               /* TFA BL31. */
> +               tfa-bl31 at 8c200000 {
> +                       reg = <0x0 0x8c200000 0x0 0x00080000>;
> +                       no-map;
> +               };
> +
> +               /* TEE TZ DRAM. */
> +               tee at 8c400000 {
> +                       reg = <0x0 0x8c400000 0x0 0x02000000>;
> +                       no-map;
> +               };
> +        };

Shouldn't these reservations be added by the bootloader stack, when
passing the DTB to Linux?

>  };
>
>  &extal_clk {

Gr{oetje,eeting}s,

                        Geert

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



More information about the linux-arm-kernel mailing list