From: Robin Murphy <robin.murphy@arm.com>
To: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>,
mathieu.poirier@linaro.org
Cc: Adam.Johnston@arm.com, Hugues.KambaMpiana@arm.com,
Drew.Reed@arm.com, andersson@kernel.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, krzysztof.kozlowski+dt@linaro.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org,
liviu.dudau@arm.com, lpieralisi@kernel.org, robh@kernel.org,
sudeep.holla@arm.com
Subject: Re: [PATCH v2 1/5] dt-bindings: remoteproc: sse710: Add the External Systems remote processors
Date: Fri, 27 Sep 2024 18:54:38 +0100 [thread overview]
Message-ID: <ce534365-0110-4aba-b8b5-0a46c5ea81d0@arm.com> (raw)
In-Reply-To: <20240822170951.339492-2-abdellatif.elkhlifi@arm.com>
On 22/08/2024 6:09 pm, Abdellatif El Khlifi wrote:
> Add devicetree binding schema for the External Systems remote processors
>
> The External Systems remote processors are provided on the Corstone-1000
> IoT Reference Design Platform via the SSE-710 subsystem.
>
> For more details about the External Systems, please see Corstone SSE-710
> subsystem features [1].
>
> [1]: https://developer.arm.com/documentation/102360/0000/Overview-of-Corstone-1000/Corstone-SSE-710-subsystem-features
>
> Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
> ---
> .../remoteproc/arm,sse710-extsys.yaml | 90 +++++++++++++++++++
> 1 file changed, 90 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/arm,sse710-extsys.yaml
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/arm,sse710-extsys.yaml b/Documentation/devicetree/bindings/remoteproc/arm,sse710-extsys.yaml
> new file mode 100644
> index 000000000000..827ba8d962f1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/arm,sse710-extsys.yaml
> @@ -0,0 +1,90 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/arm,sse710-extsys.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: SSE-710 External System Remote Processor
Thing is, this is not describing SSE-710. As far as I can work out, it
is describing the firmware and hardware that a particular example
implementation of the Corstone-1000 kit has chosen to put in the
"external system" hole in the SSE-710 within that kit.
If I license SSE-710 alone or even the Corstone-1000 kit, I can put
whatever I want in *my* implementation of those subsystems, so there
clearly cannot possibly be a common binding for that.
For instance what if I decide to combine a Cortex-M core plus a radio
and some other glue as my external subsystem? Do we have dozens of
remoteproc bindings and drivers for weird fixed-function remoteprocs
whose "firmware-name" implies a Bluetooth protocol stack? No, we treat
them as Bluetooth controller devices. Look at
devicetree/bindings/sound/fsl,rpmsg.yaml - it's even unashamedly an
rpmsg client, but it's still not abusing the remoteproc subsystem
because its function to the host OS is as an audio controller, not an
arbitrarily configurable processor.
As I said before, all SSE-710 actually implements is a reset mechanism,
so it only seems logical to model it as a reset controller, e.g.
something like:
hbsys: syscon@xyz {
compatible = "arm,sse710-host-base-sysctrl", "syscon";
reg = <xyz>;
#reset-cells = <1>;
};
something {
...
resets = <&hbsys 0>;
};
something-else {
...
resets = <&hbsys 1>;
};
Then if there is actually any meaningful functionality in the default
extsys0 firmware preloaded on the FPGA setup then define a binding for
"arm,corstone1000-an550-extsys0" to describe whatever that actually
does. If a user chooses to create and load their own different firmware,
they're going to need their own binding and driver for whatever *that*
firmware does.
FWIW, driver-wise the mapping to the reset API seems straightforward -
.assert hits RST_REQ, .deassert clears CPUWAIT (.status is possibly a
combination of CPUWAIT and RST_ACK?)
Thanks,
Robin.
> +
> +maintainers:
> + - Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
> + - Hugues Kamba Mpiana <hugues.kambampiana@arm.com>
> +
> +description: |
> + SSE-710 is an heterogeneous subsystem supporting up to two remote
> + processors aka the External Systems.
> +
> +properties:
> + compatible:
> + enum:
> + - arm,sse710-extsys
> +
> + firmware-name:
> + description:
> + The default name of the firmware to load to the remote processor.
> +
> + '#extsys-id':
> + description:
> + The External System ID.
> + enum: [0, 1]
> +
> + mbox-names:
> + items:
> + - const: txes0
> + - const: rxes0
> +
> + mboxes:
> + description:
> + The list of Message Handling Unit (MHU) channels used for bidirectional
> + communication. This property is only required if the virtio-based Rpmsg
> + messaging bus is used. For more details see the Arm MHUv2 Mailbox
> + Controller at devicetree/bindings/mailbox/arm,mhuv2.yaml
> +
> + minItems: 2
> + maxItems: 2
> +
> + memory-region:
> + description:
> + If present, a phandle for a reserved memory area that used for vdev
> + buffer, resource table, vring region and others used by the remote
> + processor.
> + minItems: 2
> + maxItems: 32
> +
> +required:
> + - compatible
> + - firmware-name
> + - '#extsys-id'
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + extsys0_vring0: vdev0vring0@82001000 {
> + reg = <0 0x82001000 0 0x8000>;
> + no-map;
> + };
> +
> + extsys0_vring1: vdev0vring1@82009000 {
> + reg = <0 0x82009000 0 0x8000>;
> + no-map;
> + };
> + };
> +
> + syscon@1a010000 {
> + compatible = "arm,sse710-host-base-sysctrl", "simple-mfd", "syscon";
> + reg = <0x1a010000 0x1000>;
> +
> + extsys0 {
> + compatible = "arm,sse710-extsys";
> + #extsys-id = <0>;
> + firmware-name = "es_flashfw.elf";
> + mbox-names = "txes0", "rxes0";
> + mboxes = <&mhu0_hes0 0 1>, <&mhu0_es0h 0 1>;
> + memory-region = <&extsys0_vring0>, <&extsys0_vring1>;
> + };
> + };
next prev parent reply other threads:[~2024-09-27 17:54 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-01 16:42 [PATCH 0/3] remoteproc: introduce Arm remoteproc support abdellatif.elkhlifi
2024-03-01 16:42 ` [PATCH 1/3] remoteproc: Add Arm remoteproc driver abdellatif.elkhlifi
2024-03-04 18:30 ` Rob Herring
2024-03-04 18:42 ` Mathieu Poirier
2024-03-07 19:40 ` Abdellatif El Khlifi
2024-03-08 16:44 ` Mathieu Poirier
2024-03-11 11:44 ` Abdellatif El Khlifi
2024-03-12 16:29 ` Mathieu Poirier
2024-03-12 17:32 ` Abdellatif El Khlifi
2024-03-13 16:25 ` Mathieu Poirier
2024-03-13 17:17 ` Abdellatif El Khlifi
2024-03-14 14:52 ` Mathieu Poirier
2024-03-14 14:59 ` Sudeep Holla
2024-03-14 15:16 ` Abdellatif El Khlifi
2024-03-14 15:24 ` Sudeep Holla
2024-03-14 16:29 ` Mathieu Poirier
2024-03-25 17:13 ` Abdellatif El Khlifi
2024-03-26 14:20 ` Mathieu Poirier
2024-03-26 17:14 ` Abdellatif El Khlifi
2024-08-22 17:09 ` [PATCH v2 0/5] remoteproc: arm64: Introduce remoteproc support for Corstone-1000 External Systems Abdellatif El Khlifi
2024-08-22 17:09 ` [PATCH v2 1/5] dt-bindings: remoteproc: sse710: Add the External Systems remote processors Abdellatif El Khlifi
2024-08-22 18:25 ` Rob Herring (Arm)
2024-08-23 6:23 ` Krzysztof Kozlowski
2024-09-19 9:35 ` Abdellatif El Khlifi
2024-09-19 10:04 ` Krzysztof Kozlowski
2024-09-19 14:57 ` Abdellatif El Khlifi
2024-09-20 12:42 ` Krzysztof Kozlowski
2024-09-20 14:19 ` Abdellatif El Khlifi
2024-09-20 14:56 ` Krzysztof Kozlowski
2024-09-20 16:38 ` Abdellatif El Khlifi
2024-09-21 18:20 ` Krzysztof Kozlowski
2024-09-23 11:49 ` Abdellatif El Khlifi
2024-09-23 15:29 ` Krzysztof Kozlowski
2024-09-23 17:19 ` Abdellatif El Khlifi
2024-09-27 7:57 ` Krzysztof Kozlowski
2024-09-22 18:58 ` Krzysztof Kozlowski
2024-09-27 17:54 ` Robin Murphy [this message]
2024-10-09 9:46 ` Abdellatif El Khlifi
2024-08-22 17:09 ` [PATCH v2 2/5] dt-bindings: arm: sse710: Add Host Base System Control Abdellatif El Khlifi
2024-08-23 6:25 ` Krzysztof Kozlowski
2024-08-22 17:09 ` [PATCH v2 3/5] arm64: dts: corstone1000: Add MHU nodes used by the External System Abdellatif El Khlifi
2024-08-22 17:09 ` [PATCH v2 4/5] arm64: dts: corstone1000: Add External System support Abdellatif El Khlifi
2024-08-22 17:09 ` [PATCH v2 5/5] remoteproc: arm64: corstone1000: Add the External Systems driver Abdellatif El Khlifi
2024-09-18 15:40 ` Abdellatif El Khlifi
2024-09-19 8:37 ` Mathieu Poirier
2024-03-01 16:42 ` [PATCH 2/3] arm64: dts: Add corstone1000 external system device node abdellatif.elkhlifi
2024-03-01 19:27 ` Krzysztof Kozlowski
2024-03-08 12:21 ` Sudeep Holla
2024-03-08 14:25 ` Abdellatif El Khlifi
2024-03-01 16:42 ` [PATCH 3/3] dt-bindings: remoteproc: Add Arm remoteproc abdellatif.elkhlifi
2024-03-01 19:30 ` Krzysztof Kozlowski
2024-03-08 12:29 ` Sudeep Holla
2024-03-08 13:54 ` Abdellatif El Khlifi
2024-03-13 19:59 ` Robin Murphy
2024-03-14 13:49 ` Abdellatif El Khlifi
2024-03-14 13:56 ` Krzysztof Kozlowski
2024-03-14 15:20 ` Abdellatif El Khlifi
2024-03-14 15:19 ` Sudeep Holla
2024-03-15 14:22 ` Abdellatif El Khlifi
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=ce534365-0110-4aba-b8b5-0a46c5ea81d0@arm.com \
--to=robin.murphy@arm.com \
--cc=Adam.Johnston@arm.com \
--cc=Drew.Reed@arm.com \
--cc=Hugues.KambaMpiana@arm.com \
--cc=abdellatif.elkhlifi@arm.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=liviu.dudau@arm.com \
--cc=lpieralisi@kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=robh@kernel.org \
--cc=sudeep.holla@arm.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).