Microchip family of RISC-V SoCs typically have one or more application
clusters. These clusters can be configured to run in an Asymmetric
Multi Processing (AMP) mode.
Add a dt-binding for these application clusters.
Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
---
.../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++
1 file changed, 95 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
new file mode 100644
index 000000000000..348902f9a202
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip IPC Remote Processor
+
+description:
+ Microchip family of RISC-V SoCs typically have one or more
+ clusters. These clusters can be configured to run in an Asymmetric
+ Multi Processing (AMP) mode where clusters are split in independent
+ software contexts.
+
+maintainers:
+ - Valentina Fernandez <valentina.fernandezalanis@microchip.com>
+
+properties:
+ compatible:
+ const: microchip,ipc-sbi-remoteproc
+
+ mboxes:
+ description:
+ Microchip IPC mailbox specifier. To be used for communication with
+ a remote cluster. The specifier format is as per the bindings,
+ Documentation/devicetree/bindings/mailbox/microchip,sbi-ipc.yaml
+ maxItems: 1
+
+ memory-region:
+ minItems: 1
+ maxItems: 5
+ description:
+ List of phandles to the reserved memory regions associated wih the remoteproc
+ device. This is variable and describes the memories shared with the remote cluster
+ (e.g. firmware, resource table, rpmsg vrings, etc.)
+ items:
+ anyOf:
+ - description: region used for the resource table when firmware is started by the bootloader
+ - description: region used for the remote cluster firmware image section
+ - description: virtio device (vdev) buffer
+ - description: virtqueue for sending messages to the remote cluster (vring0)
+ - description: virtqueue for receiving messages from the remote cluster (vring1)
+
+ memory-region-names:
+ minItems: 1
+ maxItems: 5
+ items:
+ anyOf:
+ - const: rsc-table
+ - const: firmware
+ - const: buffer
+ - const: vring0
+ - const: vring1
+
+required:
+ - compatible
+ - mboxes
+ - memory-region
+ - memory-region-names
+
+additionalProperties: false
+
+examples:
+ - |
+ // Early boot mode example - firmware started by bootloader
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ remoteproc {
+ compatible = "microchip,ipc-sbi-remoteproc";
+ mboxes= <&ihc 8>;
+ memory-region = <&rsctable>, <&vdev0buffer>,
+ <&vdev0vring0>, <&vdev0vring1>;
+ memory-region-names = "rsc-table", "buffer",
+ "vring0", "vring1";
+ };
+ };
+
+ - |
+ // Late boot mode example - firmware started by Linux (remoteproc)
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ remoteproc {
+ compatible = "microchip,ipc-sbi-remoteproc";
+ mboxes= <&ihc 8>;
+ memory-region = <&cluster_firmware>, <&vdev0buffer>,
+ <&vdev0vring0>, <&vdev0vring1>;
+ memory-region-names = "firmware", "buffer",
+ "vring0", "vring1";
+ };
+ };
+...
--
2.34.1
On Fri, Nov 21, 2025 at 02:21:56PM +0000, Valentina Fernandez wrote: > Microchip family of RISC-V SoCs typically have one or more application > clusters. These clusters can be configured to run in an Asymmetric > Multi Processing (AMP) mode. > > Add a dt-binding for these application clusters. > > Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> > --- > .../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++ > 1 file changed, 95 insertions(+) > create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml > > diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml > new file mode 100644 > index 000000000000..348902f9a202 > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml > @@ -0,0 +1,95 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Microchip IPC Remote Processor > + > +description: > + Microchip family of RISC-V SoCs typically have one or more > + clusters. These clusters can be configured to run in an Asymmetric > + Multi Processing (AMP) mode where clusters are split in independent > + software contexts. > + > +maintainers: > + - Valentina Fernandez <valentina.fernandezalanis@microchip.com> > + > +properties: > + compatible: > + const: microchip,ipc-sbi-remoteproc This should be SoC specific compatible. Best regards, Krzysztof
On 25/11/2025 09:46, Krzysztof Kozlowski wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On Fri, Nov 21, 2025 at 02:21:56PM +0000, Valentina Fernandez wrote: >> Microchip family of RISC-V SoCs typically have one or more application >> clusters. These clusters can be configured to run in an Asymmetric >> Multi Processing (AMP) mode. >> >> Add a dt-binding for these application clusters. >> >> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> >> --- >> .../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++ >> 1 file changed, 95 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >> >> diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >> new file mode 100644 >> index 000000000000..348902f9a202 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >> @@ -0,0 +1,95 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Microchip IPC Remote Processor >> + >> +description: >> + Microchip family of RISC-V SoCs typically have one or more >> + clusters. These clusters can be configured to run in an Asymmetric >> + Multi Processing (AMP) mode where clusters are split in independent >> + software contexts. >> + >> +maintainers: >> + - Valentina Fernandez <valentina.fernandezalanis@microchip.com> >> + >> +properties: >> + compatible: >> + const: microchip,ipc-sbi-remoteproc > This should be SoC specific compatible. There was some discussion on this in v1: https://lore.kernel.org/all/20241015-distrust-chatty-9e723e670fef@spud/ The compatible is intentionally generic, representing a “generic” SBI ecall interface to a set of remote processors, with the platform abstracted via SBI ecalls. The IPC/IHC (named differently depending on whether it is RTL for the FPGA fabric or a hardened version) is intended for Asymmetric Multiprocessing, where a set of cores can run other firmware, such as Zephyr. Unlike platforms with a fixed DSP, the configuration here is variable even for a single SoC. For example, which memory regions are used for the remote cluster or which mailbox channel is selected. Because the configuration can vary even on the same SoC, adding a SOC-specific compatible string provides no additional clarity, as it does not correspond to a unique configuration. That said, if SOC-specific compatible strings are needed, I can add them. Thanks, Valentina > > Best regards, > Krzysztof >
On 01/12/2025 17:04, Valentina.FernandezAlanis@microchip.com wrote: > On 25/11/2025 09:46, Krzysztof Kozlowski wrote: >> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >> >> On Fri, Nov 21, 2025 at 02:21:56PM +0000, Valentina Fernandez wrote: >>> Microchip family of RISC-V SoCs typically have one or more application >>> clusters. These clusters can be configured to run in an Asymmetric >>> Multi Processing (AMP) mode. >>> >>> Add a dt-binding for these application clusters. >>> >>> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> >>> --- >>> .../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++ >>> 1 file changed, 95 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >>> new file mode 100644 >>> index 000000000000..348902f9a202 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml >>> @@ -0,0 +1,95 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Microchip IPC Remote Processor >>> + >>> +description: >>> + Microchip family of RISC-V SoCs typically have one or more >>> + clusters. These clusters can be configured to run in an Asymmetric >>> + Multi Processing (AMP) mode where clusters are split in independent >>> + software contexts. >>> + >>> +maintainers: >>> + - Valentina Fernandez <valentina.fernandezalanis@microchip.com> >>> + >>> +properties: >>> + compatible: >>> + const: microchip,ipc-sbi-remoteproc >> This should be SoC specific compatible. > There was some discussion on this in v1: > https://lore.kernel.org/all/20241015-distrust-chatty-9e723e670fef@spud/ I don't find anything from that explained in commit msg or device description, so next time you send you will get exactly the same comment. Best regards, Krzysztof
On Fri, Nov 21, 2025 at 02:21:56PM +0000, Valentina Fernandez wrote:
> Microchip family of RISC-V SoCs typically have one or more application
> clusters. These clusters can be configured to run in an Asymmetric
> Multi Processing (AMP) mode.
>
> Add a dt-binding for these application clusters.
>
> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
> ---
> .../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++
> 1 file changed, 95 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
> new file mode 100644
> index 000000000000..348902f9a202
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip IPC Remote Processor
> +
> +description:
> + Microchip family of RISC-V SoCs typically have one or more
> + clusters. These clusters can be configured to run in an Asymmetric
> + Multi Processing (AMP) mode where clusters are split in independent
> + software contexts.
> +
> +maintainers:
> + - Valentina Fernandez <valentina.fernandezalanis@microchip.com>
> +
> +properties:
> + compatible:
> + const: microchip,ipc-sbi-remoteproc
> +
> + mboxes:
> + description:
> + Microchip IPC mailbox specifier. To be used for communication with
> + a remote cluster. The specifier format is as per the bindings,
> + Documentation/devicetree/bindings/mailbox/microchip,sbi-ipc.yaml
> + maxItems: 1
> +
> + memory-region:
> + minItems: 1
> + maxItems: 5
> + description:
> + List of phandles to the reserved memory regions associated wih the remoteproc
> + device. This is variable and describes the memories shared with the remote cluster
> + (e.g. firmware, resource table, rpmsg vrings, etc.)
> + items:
> + anyOf:
Is this genuinely any of these, with no restrictions?
Can you have rsc-table and firmware?
> + - description: region used for the resource table when firmware is started by the bootloader
> + - description: region used for the remote cluster firmware image section
> + - description: virtio device (vdev) buffer
> + - description: virtqueue for sending messages to the remote cluster (vring0)
> + - description: virtqueue for receiving messages from the remote cluster (vring1)
> +
> + memory-region-names:
> + minItems: 1
> + maxItems: 5
> + items:
> + anyOf:
> + - const: rsc-table
> + - const: firmware
> + - const: buffer
> + - const: vring0
> + - const: vring1
> +
> +required:
> + - compatible
> + - mboxes
> + - memory-region
> + - memory-region-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + // Early boot mode example - firmware started by bootloader
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + remoteproc {
> + compatible = "microchip,ipc-sbi-remoteproc";
> + mboxes= <&ihc 8>;
> + memory-region = <&rsctable>, <&vdev0buffer>,
> + <&vdev0vring0>, <&vdev0vring1>;
> + memory-region-names = "rsc-table", "buffer",
> + "vring0", "vring1";
> + };
> + };
> +
> + - |
> + // Late boot mode example - firmware started by Linux (remoteproc)
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + remoteproc {
> + compatible = "microchip,ipc-sbi-remoteproc";
> + mboxes= <&ihc 8>;
> + memory-region = <&cluster_firmware>, <&vdev0buffer>,
> + <&vdev0vring0>, <&vdev0vring1>;
> + memory-region-names = "firmware", "buffer",
> + "vring0", "vring1";
> + };
> + };
> +...
> --
> 2.34.1
>
On 21/11/2025 18:28, Conor Dooley wrote:
> On Fri, Nov 21, 2025 at 02:21:56PM +0000, Valentina Fernandez wrote:
>> Microchip family of RISC-V SoCs typically have one or more application
>> clusters. These clusters can be configured to run in an Asymmetric
>> Multi Processing (AMP) mode.
>>
>> Add a dt-binding for these application clusters.
>>
>> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
>> ---
>> .../microchip,ipc-sbi-remoteproc.yaml | 95 +++++++++++++++++++
>> 1 file changed, 95 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
>> new file mode 100644
>> index 000000000000..348902f9a202
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
>> @@ -0,0 +1,95 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/remoteproc/microchip,ipc-sbi-remoteproc.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Microchip IPC Remote Processor
>> +
>> +description:
>> + Microchip family of RISC-V SoCs typically have one or more
>> + clusters. These clusters can be configured to run in an Asymmetric
>> + Multi Processing (AMP) mode where clusters are split in independent
>> + software contexts.
>> +
>> +maintainers:
>> + - Valentina Fernandez <valentina.fernandezalanis@microchip.com>
>> +
>> +properties:
>> + compatible:
>> + const: microchip,ipc-sbi-remoteproc
>> +
>> + mboxes:
>> + description:
>> + Microchip IPC mailbox specifier. To be used for communication with
>> + a remote cluster. The specifier format is as per the bindings,
>> + Documentation/devicetree/bindings/mailbox/microchip,sbi-ipc.yaml
>> + maxItems: 1
>> +
>> + memory-region:
>> + minItems: 1
>> + maxItems: 5
>> + description:
>> + List of phandles to the reserved memory regions associated wih the remoteproc
>> + device. This is variable and describes the memories shared with the remote cluster
>> + (e.g. firmware, resource table, rpmsg vrings, etc.)
>> + items:
>> + anyOf:
> Is this genuinely any of these, with no restrictions?
> Can you have rsc-table and firmware?
Yes, it is possible to include both rsc-table and firmware. This
typically occurs
when early boot is used, followed by remoteproc start/stop to launch
additional firmware.
However, there are a few restrictions worth adding. For example, vring0 and
vring1 memory regions make no sense without a buffer region, and at least
one of rsc-table or firmware must be present. I can include these rules
in v3.
Thanks,
Valentina
>> + - description: region used for the resource table when firmware is started by the bootloader
>> + - description: region used for the remote cluster firmware image section
>> + - description: virtio device (vdev) buffer
>> + - description: virtqueue for sending messages to the remote cluster (vring0)
>> + - description: virtqueue for receiving messages from the remote cluster (vring1)
>> +
>> + memory-region-names:
>> + minItems: 1
>> + maxItems: 5
>> + items:
>> + anyOf:
>> + - const: rsc-table
>> + - const: firmware
>> + - const: buffer
>> + - const: vring0
>> + - const: vring1
>> +
>> +required:
>> + - compatible
>> + - mboxes
>> + - memory-region
>> + - memory-region-names
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + // Early boot mode example - firmware started by bootloader
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + remoteproc {
>> + compatible = "microchip,ipc-sbi-remoteproc";
>> + mboxes= <&ihc 8>;
>> + memory-region = <&rsctable>, <&vdev0buffer>,
>> + <&vdev0vring0>, <&vdev0vring1>;
>> + memory-region-names = "rsc-table", "buffer",
>> + "vring0", "vring1";
>> + };
>> + };
>> +
>> + - |
>> + // Late boot mode example - firmware started by Linux (remoteproc)
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + remoteproc {
>> + compatible = "microchip,ipc-sbi-remoteproc";
>> + mboxes= <&ihc 8>;
>> + memory-region = <&cluster_firmware>, <&vdev0buffer>,
>> + <&vdev0vring0>, <&vdev0vring1>;
>> + memory-region-names = "firmware", "buffer",
>> + "vring0", "vring1";
>> + };
>> + };
>> +...
>> --
>> 2.34.1
>>
© 2016 - 2025 Red Hat, Inc.