Devicetree
 help / color / mirror / Atom feed
From: Nishanth Menon <nm@ti.com>
To: <sashiko-reviews@lists.linux.dev>
Cc: "Markus Schneider-Pargmann (TI)" <msp@baylibre.com>,
	<robh@kernel.org>, <devicetree@vger.kernel.org>,
	<conor+dt@kernel.org>
Subject: Re: [PATCH v9 7/9] arm64: dts: ti: k3-am62a: Split r5f memory region
Date: Thu, 24 Sep 2026 09:55:25 -0500	[thread overview]
Message-ID: <20260924145525.2g5ymuwsjwf5ecct@twice> (raw)
In-Reply-To: <20260918094011.99AE01F000FF@smtp.kernel.org>

On 09:40-20260918, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
> - [High] remoteproc: ti_k3: k3_rproc_da_to_va() rejects segments spanning split memory regions
> - [High] arm64: dts: ti: missing bootph-pre-ram breaks SPL DM firmware loading
> - [Medium] arm64: dts: ti: hardcoding volatile firmware layout into Device Tree
> --
> 
> commit 33643294863f45f1ac37617eafcfc525d230effc
> Author: Markus Schneider-Pargmann (TI) <msp@baylibre.com>
> 
> arm64: dts: ti: k3-am62a: Split r5f memory region
> 
> Split the firmware memory region in more specific parts so it is better
> described where to find which information. Specifically the LPM metadata
> region is important as bootloader software like U-Boot has to know where
> that data is to be able to read that data.
> 
> > diff --git a/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
> > index 06d4e815b1670..94c1d60d8d7a1 100644
> > --- a/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
> > +++ b/arch/arm64/boot/dts/ti/k3-am62a-ti-ipc-firmware.dtsi
> > @@ -65,8 +65,14 @@ &wkup_r5fss0 {
> >  &wkup_r5fss0_core0 {
> >  	mboxes = <&mailbox0_cluster0>, <&mbox_r5_0>;
> >  	memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
> > -			<&wkup_r5fss0_core0_memory_region>;
> > -	memory-region-names = "dma", "firmware";
> > +			<&wkup_r5fss0_core0_ipc_region>,
> > +			<&wkup_r5fss0_core0_lpm_fs_stub_region>,
> > +			<&wkup_r5fss0_core0_lpm_metadata_region>,
> > +			<&wkup_r5fss0_core0_lpm_rest_region>,
> > +			<&wkup_r5fss0_core0_dm_region>;
> 
> [Severity: High]
> Does this multi-region split cause a regression when loading a monolithic
> firmware ELF whose segments span across the new chunk boundaries?
> 
> Looking at k3_rproc_da_to_va() in drivers/remoteproc/ti_k3_common.c, it
> evaluates segments against each reserved memory region individually and
> lacks logic to aggregate sequential chunks:
> 
> drivers/remoteproc/ti_k3_common.c:k3_rproc_da_to_va() {
>     ...
>     if (da >= dev_addr && ((da + len) <= (dev_addr + size))) {
>         offset = da - dev_addr;
>         va = kproc->rmem[i].cpu_addr + offset;
>         return (__force void *)va;
>     }
>     ...
> }
> 
> Will this bounds check fail and abort the boot sequence for any system using
> standard firmware linked under the assumption of a single contiguous memory
> block?


Do we need to protect with something on the lines of
https://lore.kernel.org/all/20260921145325.300025-3-richard.genoud@bootlin.com/

Could you please add in diffstat any comments if the sashiko reviews
are'nt accurate from previous feedback?

> 
> > +	memory-region-names = "dma", "ipc", "lpm-stub",
> > +			      "lpm-metadata", "lpm-context",
> > +			      "dm-firmware";
> 
> [ ... ]
> 
> > diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> > index a8c794d073431..7cba3ff99e6a3 100644
> > --- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> > +++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> > @@ -65,13 +65,37 @@ wkup_r5fss0_core0_dma_memory_region: memory@9c800000 {
> [ ... ]
> > +		wkup_r5fss0_core0_lpm_fs_stub_region: memory@9ca00000 {
> > +			compatible = "shared-dma-pool";
> > +			reg = <0x00 0x9ca00000 0x00 0x8000>;
> > +			no-map;
> > +		};
> 
> [Severity: Medium]
> Does this create a regression by hardcoding a software-defined volatile
> firmware layout directly into the Device Tree?
> 
> If a subsequent firmware build increases the size of lpm_fs_stub beyond the
> 32KB hardcoded here, will this crash or require a lockstep DT update to
> function properly?
> 
> > +
> > +		wkup_r5fss0_core0_lpm_metadata_region: memory@9ca08000 {
> > +			compatible = "shared-dma-pool";
> > +			reg = <0x00 0x9ca08000 0x00 0x1000>;
> >  			no-map;
> >  			bootph-pre-ram;
> >  		};
> >  
> > +		wkup_r5fss0_core0_lpm_rest_region: memory@9ca09000 {
> > +			compatible = "shared-dma-pool";
> > +			reg = <0x00 0x9ca09000 0x00 0x97000>;
> > +			no-map;
> > +		};
> > +
> > +		wkup_r5fss0_core0_dm_region: memory@9caa0000 {
> > +			compatible = "shared-dma-pool";
> > +			reg = <0x00 0x9caa0000 0x00 0x1c60000>;
> > +			no-map;
> > +		};
> 
> [Severity: High]
> Does the omission of the bootph-pre-ram tag on this new DM region create a
> regression for SPL DM firmware loading?
> 
> Since U-Boot fdtgrep processes the SPL DTB by keeping only nodes tagged
> with bootph-pre-ram, these split regions will be stripped.
> 
> Will this result in the no-map protections being lost, causing U-Boot's
> remoteproc driver to error out parsing dangling phandles when attempting
> to load the Device Manager (DM) firmware?

Is'nt this valid? why would we let R5 SPL or U-boot SPL think it has
memory access? Adding a comment is probably worth in the code.

> 
> > +
> >  		secure_ddr: optee@9e800000 {
> >  			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
> >  			no-map;
> 
> -- 
> Sashiko AI review · https://sashiko.dev/#/patchset/20260918-topic-am62a-ioddr-dt-v6-19-v9-0-40972ef1f663@baylibre.com?part=7

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
https://ti.com/opensource

  reply	other threads:[~2026-09-24 14:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18  9:17 [PATCH v9 0/9] arm64: dts: ti: Split wkup R5F memory region for IO+DDR resume Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 1/9] arm64: dts: ti: k3-am62a-phycore-som: Fix wkup R5F memory region size Markus Schneider-Pargmann (TI)
2026-09-18 11:31   ` Wadim Egorov
2026-09-18  9:17 ` [PATCH v9 2/9] arm64: dts: ti: k3-am62d2-evm: " Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 3/9] arm64: dts: ti: k3-am62a7-sk: " Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 4/9] arm64: dts: ti: k3-am62p-verdin: " Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 5/9] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 6/9] arm64: dts: ti: var-som-am62p: " Markus Schneider-Pargmann (TI)
2026-09-18  9:17 ` [PATCH v9 7/9] arm64: dts: ti: k3-am62a: Split r5f memory region Markus Schneider-Pargmann (TI)
2026-09-18  9:40   ` sashiko-bot
2026-09-24 14:55     ` Nishanth Menon [this message]
2026-09-29  9:55       ` Markus Schneider-Pargmann
2026-09-18  9:17 ` [PATCH v9 8/9] arm64: dts: ti: k3-am62p: " Markus Schneider-Pargmann (TI)
2026-09-18  9:35   ` sashiko-bot
2026-09-18 11:47   ` Stefano Radaelli
2026-09-18  9:17 ` [PATCH v9 9/9] arm64: dts: ti: Add wkup R5F nodes to pre-ram bootphase Markus Schneider-Pargmann (TI)
2026-09-18 11:48   ` Stefano Radaelli
2026-10-02  1:00 ` [PATCH v9 0/9] arm64: dts: ti: Split wkup R5F memory region for IO+DDR resume Nishanth Menon

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=20260924145525.2g5ymuwsjwf5ecct@twice \
    --to=nm@ti.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=msp@baylibre.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox