From: Bryan Brattlof <bb@ti.com>
To: Andrew Davis <afd@ti.com>
Cc: Judith Mendez <jm@ti.com>, Nishanth Menon <nm@ti.com>,
Vignesh Raghavendra <vigneshr@ti.com>,
Tero Kristo <kristo@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Hari Nagalla <hnagalla@ti.com>, Beleswar Prasad <b-padhi@ti.com>,
Markus Schneider-Pargmann <msp@baylibre.com>,
Devarsh Thakkar <devarsht@ti.com>
Subject: Re: [PATCH v7 06/11] arm64: dts: ti: k3-am62a7-sk: Enable IPC with remote processors
Date: Mon, 21 Apr 2025 16:49:24 -0500 [thread overview]
Message-ID: <20250421214924.a52pakut7nzrbufc@bryanbrattlof.com> (raw)
In-Reply-To: <3f95eb2c-d9ea-4acd-a57f-3ffdd43fd505@ti.com>
On April 21, 2025 thus sayeth Andrew Davis:
> On 4/21/25 2:05 PM, Judith Mendez wrote:
> > Hi Bryan,
> >
> > On 4/21/25 11:26 AM, Bryan Brattlof wrote:
> > > On April 21, 2025 thus sayeth Nishanth Menon:
> > > > On 10:04-20250419, Bryan Brattlof wrote:
> > > > > On April 15, 2025 thus sayeth Judith Mendez:
> > > > > > From: Devarsh Thakkar <devarsht@ti.com>
> > > > > >
> > > > > > For each remote proc, reserve memory for IPC and bind the mailbox
> > > > > > assignments. Two memory regions are reserved for each remote processor.
> > > > > > The first region of 1MB of memory is used for Vring shared buffers
> > > > > > and the second region is used as external memory to the remote processor
> > > > > > for the resource table and for tracebuffer allocations.
> > > > > >
> > > > > > Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
> > > > > > Signed-off-by: Hari Nagalla <hnagalla@ti.com>
> > > > > > Signed-off-by: Judith Mendez <jm@ti.com>
> > > > > > Acked-by: Andrew Davis <afd@ti.com>
> > > > > > Reviewed-by: Beleswar Padhi <b-padhi@ti.com>
> > > > > > Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com>
> > > > > > ---
> > > > > > arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 96 +++++++++++++++++++++++--
> > > > > > 1 file changed, 90 insertions(+), 6 deletions(-)
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> > > > > > index 1c9d95696c839..7d817b447c1d0 100644
> > > > > > --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> > > > > > +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> > > > > > @@ -52,6 +52,42 @@ linux,cma {
> > > > > > linux,cma-default;
> > > > > > };
> > > > > > + c7x_0_dma_memory_region: c7x-dma-memory@99800000 {
> > > > > > + compatible = "shared-dma-pool";
> > > > > > + reg = <0x00 0x99800000 0x00 0x100000>;
> > > > > > + no-map;
> > > > > > + };
> > > > > > +
> > > > > > + c7x_0_memory_region: c7x-memory@99900000 {
> > > > > > + compatible = "shared-dma-pool";
> > > > > > + reg = <0x00 0x99900000 0x00 0xf00000>;
> > > > > > + no-map;
> > > > > > + };
> > > > > > +
> > > > >
> > > > > I know this has been a push for our IPC and MCU+ teams for a couple
> > > > > windows now, though I do want to point out that some AM62A devices
> > > > > (AM62A12AQMSIAMBRQ1) will not even have a C7x.
> > > > >
> > > > > It's relatively easy to cut nodes out that describe the hardware in the
> > > > > bootloaders, but once we start configuring them to demo something it
> > > > > becomes impossible to unwind that during boot.
> > > > >
> > > > > We can clam we only support the superset devices but I just wanted to
> > > > > make this email so I could point people to it when they inevitably ask
> > > > > why their parts do not work out of the box with Linux.
> > > > >
> > > > > Naked-by: Bryan Brattlof <bb@ti.com>
> > > >
> > > >
> > > > I am confused. I do not see support for AM62A1 in upstream. We have
> > > > AM62A7-SK in upstream. I am not sure what direction you are suggesting
> > > > here.
> > >
> > > All I'm trying to point out is for every part we upstream there are >10
> > > times the number of parts that for one reason or another will not make
> > > it to these upstream repositories.
> > >
> > > Most of these parts will have trivial changes like having lower CPU
> > > counts, some will not have a GPU, MCU, PRU, or display, or maybe it's
> > > just a package change and the thermal zones are different, or it's just
> > > the speeds the IP can confidently run at, or it could be as simple as
> > > DDR part changes. Each variant will be mostly the superset device with
> > > one or two nodes disabled or modified in some way.
> > >
> > > For a while now, without configuring the remote cores to demo anything,
> > > it's been relatively seamless to support these variants in the
> > > bootloaders by disabling or modifying the nodes that do not exist so
> > > Linux can at least boot to a shell and provides a great foundation for
> > > others to start their development
> > >
> > > If we want to use these boards to demo a advanced usecases we can do
> > > that but I worry it will come at the cost of supporting all the part
> > > variants.
> > >
> > > My hope was we could define the board as minimally as possible here so
> > > we can maximize their flexibility with what timers, mailboxes and memory
> > > carve-outs each remote processor uses.
> > >
> >
> > Is it not agreed upon to support the superset device upstream? It seems
> > like what we need is a detailed whitepaper on board bring-up for each
> > part variant instead of NOT adding support for the superset device
> > upstream approach.
> >
>
> We would still support the superset device upstream, Bryan is simply
> suggesting (correct me if I'm wrong) a different way of supporting
> the superset device such that later adding support for the cutdowns
> is less painful.
>
> To this I 100% agree, and I've suggested the same before in
> cases where we know a subset device is in the works. Sometimes
> plans for a cutdown happen after we have added support and that
> makes a bit of a mess (see J78424 / J742s2). Even when we know
> this is going to happen we still make a mess of DT which we end
> up having to clean up later (see AM62p / J722s).
>
Exactly. We will typically have the AM62A7 superset plan well in advance
then as the platform ages we start defining cutdowns that may or may not
function depending on the behavior of the drivers which creates the
weird DT layout and even worse some fraction of the subset devices that
may or may not boot and no indication if it even should.
Separating the core description of the hardware, so Zephyr, U-Boot,
Coreboot, Barebox and whoever else can use and modify it, from the
allocation/configuration of the hardware while Linux is running is the
only way (in my eyes) this can possibly scale.
>
> Easy manipulation of the DT in this way was one of the promises
> of "System Device Trees". Until we have that, the next best thing
> is DT overlays. The solution here then is to factor out the components
> we know will be conditional into a device tree overlays. These
> overlays will be applied by default to form the superset DT as the
> out-of-box supported device, while also allowing easy removal without
> having the bootloader perform complex DT surgery. Win-Win
>
> The plan we agreed on for this series (back in v2 IIRC) is to add
> these items as part of the base board DT to match what is already
> done for all our other devices. *then* we factor it out from all
> devices in one go to make that series more coherent.
>
> So if that sounds good, Bryan feel free to un-NAK this and we
> we will be sure to make your task of supporting all these subset
> devices much easier in the follow up series :)
I can get behind that plan but I do still worry about how this scales.
Many distributions are starting to look at UKIs as the solution to the
exploding number of DTBs. Adding overlays will just add plutonium to
this compressed DTB blob best-fit walk.
Un-Naked-by: Bryan Brattlof <bb@ti.com>
~Bryan
next prev parent reply other threads:[~2025-04-21 21:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-15 15:31 [PATCH v7 00/11] Add R5F and C7xv device nodes Judith Mendez
2025-04-15 15:31 ` [PATCH v7 01/11] arm64: dts: ti: k3-am62: Add ATCM and BTCM cbass ranges Judith Mendez
2025-04-15 16:34 ` Andrew Davis
2025-04-15 15:31 ` [PATCH v7 02/11] arm64: dts: ti: k3-am62-wakeup: Add wakeup R5F node Judith Mendez
2025-04-15 15:31 ` [PATCH v7 03/11] arm64: dts: ti: k3-am62a-mcu: Add R5F remote proc node Judith Mendez
2025-04-15 15:31 ` [PATCH v7 04/11] arm64: dts: ti: k3-am62a-wakeup: Add R5F device node Judith Mendez
2025-04-15 15:31 ` [PATCH v7 05/11] arm64: dts: ti: k3-am62a-main: Add C7xv " Judith Mendez
2025-04-15 15:31 ` [PATCH v7 06/11] arm64: dts: ti: k3-am62a7-sk: Enable IPC with remote processors Judith Mendez
2025-04-19 15:04 ` Bryan Brattlof
2025-04-21 11:40 ` Nishanth Menon
2025-04-21 16:26 ` Bryan Brattlof
2025-04-21 19:05 ` Judith Mendez
2025-04-21 20:28 ` Andrew Davis
2025-04-21 21:49 ` Bryan Brattlof [this message]
2025-05-02 11:53 ` Nishanth Menon
2025-05-02 21:09 ` Judith Mendez
2025-04-15 15:31 ` [PATCH v7 07/11] arm64: dts: ti: k3-am62p5-sk: " Judith Mendez
2025-04-28 16:22 ` Andrew Davis
2025-04-15 15:31 ` [PATCH v7 08/11] arm64: dts: ti: k3-am62x-sk-common: " Judith Mendez
2025-04-28 16:24 ` Andrew Davis
2025-04-15 15:31 ` [PATCH v7 09/11] arm64: dts: ti: k3-am62a7-sk: Reserve main_timer2 for C7x DSP Judith Mendez
2025-04-28 16:28 ` Andrew Davis
2025-04-15 15:31 ` [PATCH v7 10/11] arm64: dts: ti: k3-am62a7-sk: Reserve main_rti4 " Judith Mendez
2025-04-28 16:29 ` Andrew Davis
2025-04-15 15:31 ` [PATCH v7 11/11] arm64: dts: ti: k3-am64: Reserve timers used by MCU FW Judith Mendez
2025-04-28 16:29 ` Andrew Davis
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=20250421214924.a52pakut7nzrbufc@bryanbrattlof.com \
--to=bb@ti.com \
--cc=afd@ti.com \
--cc=b-padhi@ti.com \
--cc=conor+dt@kernel.org \
--cc=devarsht@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=hnagalla@ti.com \
--cc=jm@ti.com \
--cc=kristo@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=msp@baylibre.com \
--cc=nm@ti.com \
--cc=robh@kernel.org \
--cc=vigneshr@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox