public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Debbie Horsfall <debbie.horsfall@arm.com>
To: Cristian Marussi <cristian.marussi@arm.com>,
	Sudeep Holla <sudeep.holla@kernel.org>
Cc: Andre Przywara <andre.przywara@arm.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Liviu Dudau <liviu.dudau@arm.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 2/2] arm64: dts: zena: Add support for Zena CSS
Date: Thu, 5 Feb 2026 10:47:28 +0000	[thread overview]
Message-ID: <8501be99-e774-4799-ae6a-01ab31020864@arm.com> (raw)
In-Reply-To: <aYHmDTboOtkgac00@pluto>

On 03/02/2026 12:11, Cristian Marussi wrote:
> On Fri, Jan 30, 2026 at 12:34:31PM +0000, Sudeep Holla wrote:
>>
>> +Cristian(in case I am talking no sense)
>>
>> On Fri, Jan 30, 2026 at 11:31:25AM +0100, Andre Przywara wrote:
>>>
>>> So do you need just one "tx", but "rx" plus "rx_reply"? Which isn't valid in
>>> the current binding?
>>> If that's the case, then we would need a patch to relax the binding and
>>> allowing this combination as well.
>>> Looking into the kernel code it looks like the SCMI driver doesn't use
>>> mbox-names, but explicitly expects assignments depending on the number of
>>> mboxes? Somewhat confusing ...
> 
> Hi,
> 
> so the mbox-names are NOT mandatory, since the SCMI stack initially did
> NOT identify mboxes by names and such decision pre-dates me so I am not
> sure about the why...
> 
> ...anyway, when unidirectional mailboxes hw came along, in order to add
> clarity, WHILE maintaining backward compatibility, mbox-names were added
> only as optional and the stack really does NOT use them; the only thing
> that matters is the number and order of mboxes AND shmem areas: only the
> combination described in the mboxes binding description are allowed and
> accepted in order to manage both the case of unidirectional and
> bidirectional mailboxes while surviving backward compatibility.
> 
>>>
>>
>> It is generally transmitted via tx, and tx_reply is necessary when the
>> platform has unidirectional channels. tx_reply is used to determine when the
>> synchronization commands have completed, without requiring polling of the
>> shared memory. rx_reply is necessary only if the platform firmware expects
>> it and doesn't poll the shared memory for OSPM/agent acknowledgement.
> 
> In SCMI you have generally A2P (Agent-to-Platform) bidirectional channels
> to send commands and receive related replies using one dedicated shmem and,
> optionally, a distinct dedicated unidirectional channel P2A, with a
> distinct dedicated shmem, for receiving notifications and/or delayed
> responses sent asynchronously by the platform.
> 
> These two channels, A2P and P2A, maps in the SCMI stack (for historical
> reasons) respectively to TX and RX naming.
> 
> If the underlying transport is based on birectional mailboxes you can
> happily have 2 mboxes "tx", "rx" with 2 dedicated mbox areas.
> 
> Instead if your mailboxes are unidirectional like MHUv3, you will need
> effectively 2 mboxes to represent the 2 parts of the A2P birectional
> channel AND one mailbox to represent the P2A unidirectional channel,
> exactly like you do.
> 
> So, if you want to add the optional mbox-names would be:
> 
> 	firmware {
> 	    scmi {
> 	         compatible = "arm,scmi";
> 		 mbox-names = "tx", "tx_reply", "rx";
> 		 mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 2>
>                   shmem = <&scmi_shmem_tx &scmi_shmem_rx>;
> 
> 
> ...since the first 2 mboxes effectively represents the 2 unidirectional
> sides of the A2P channel, with first being the cmd-request direction and
> the second being the cmd-reply direction, while the third mbox is just the
> P2A unidrectional channel...
> 
> ....so it is fine, even though admittedly fuorviating, that the tx_reply
> is attached to a db_rx block, since it is exactly what represents: the
> reply to a previously sent command.
> 
> Anyway, being the names optional, the only thing that really matters in all
> of the above is that the numbers of mboxes and shmems matches:
> 
> 	 3 mbox / 2 shmem => SCMI TX and RX over 3 mailbox unidirectional channels
> 
> The additional optional rx_reply mboxes was added to represent P2A
> channels that have an completion interrupt.
> 
> All of this madness was the best way I could find to address the problem
> of supporting such new unidirectional mailboxes in the SCMI while NOT
> breaking backward compatibility in the absence of mandatory naming from
> the start.
> 
> Hope to have shed a light, beside having annoyed you all with all of the
> above flood of words :P
> 
> Thanks,
> Cristian
> 

Hi Cristian,

Thanks very much for the detailed explanation, all makes sense. I will 
add those mbox-names in accordance.

-- 

Kind regards,
Debbie


  reply	other threads:[~2026-02-05 10:49 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-23 17:37 [PATCH 0/2] Add Arm Zena CSS support Debbie Horsfall
2026-01-23 17:37 ` [PATCH 1/2] dt-bindings: arm: Add Zena CSS compatibility Debbie Horsfall
2026-01-26 15:46   ` Rob Herring (Arm)
2026-02-05 12:29   ` Krzysztof Kozlowski
2026-02-05 14:26     ` Sudeep Holla
2026-01-23 17:37 ` [PATCH 2/2] arm64: dts: zena: Add support for Zena CSS Debbie Horsfall
2026-01-27 13:22   ` Andre Przywara
2026-01-30  9:58     ` Debbie Horsfall
2026-01-30 10:31       ` Andre Przywara
2026-01-30 12:34         ` Sudeep Holla
2026-02-03 12:11           ` Cristian Marussi
2026-02-05 10:47             ` Debbie Horsfall [this message]
2026-02-05 11:08             ` Sudeep Holla
2026-02-05 11:24               ` Andre Przywara
2026-02-05 12:21                 ` Sudeep Holla
2026-02-05 12:35   ` Krzysztof Kozlowski
2026-02-05 20:12     ` Sudeep Holla

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=8501be99-e774-4799-ae6a-01ab31020864@arm.com \
    --to=debbie.horsfall@arm.com \
    --cc=andre.przywara@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=cristian.marussi@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=lpieralisi@kernel.org \
    --cc=robh@kernel.org \
    --cc=sudeep.holla@kernel.org \
    /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