All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Cc: andersson@kernel.org, mathieu.poirier@linaro.org,
	krzk+dt@kernel.org, conor+dt@kernel.org,
	linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] dt-bindings: remoteproc: add Microchip IPC remoteproc
Date: Thu, 29 Jan 2026 11:32:52 -0600	[thread overview]
Message-ID: <20260129173252.GA1309005-robh@kernel.org> (raw)
In-Reply-To: <20260126120658.1674253-2-valentina.fernandezalanis@microchip.com>

On Mon, Jan 26, 2026 at 12:06:57PM +0000, Valentina Fernandez wrote:
> Microchip RISC-V SoCs typically contain one or more clusters. Clusters
> can operate in Asymmetric Multi-Processing (AMP) mode, where individual
> cores or groups of cores run as independent software contexts.
> 
> 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 or
> clusters 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. This binding
> documents that firmware interface.
> 
> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
> ---
>  .../microchip,ipc-sbi-remoteproc.yaml         | 131 ++++++++++++++++++
>  1 file changed, 131 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..6fc0ab7f3ffb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/microchip,ipc-sbi-remoteproc.yaml
> @@ -0,0 +1,131 @@
> +# 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:

Need '>' to maintain paragraph formatting.

> +  Microchip RISC-V SoCs typically contain one or more clusters. Clusters can
> +  operate in Asymmetric Multi-Processing (AMP) mode, where individual cores
> +  or groups of cores run as independent software contexts.
> +
> +  The configuration is flexible, as the set of cores or clusters that can be
> +  controlled as remote processors may vary, and memory regions used for
> +  firmware as well as mailbox assignments depend on the system design.
> +
> +  Communication with remote cores or clusters is abstracted using ecalls
> +  to the platform's Supervisor Binary Interface (SBI) firmware, through
> +  which the state of remote cores or clusters are controlled. This binding
> +  documents that firmware interface.
> +
> +maintainers:
> +  - Valentina Fernandez <valentina.fernandezalanis@microchip.com>
> +
> +properties:
> +  compatible:
> +    const: microchip,ipc-sbi-remoteproc
> +
> +  cpu:
> +    description:
> +      phandles to the CPUs comprising the remote cluster

More than 1? Then should be 'cpus'.

> +    $ref: /schemas/types.yaml#/definitions/phandle-array

Already has a type. Drop.

> +
> +  mboxes:
> +    description:
> +      Microchip IPC mailbox specifier. Used for communication with
> +      a remote cluster. For HSS versions prior to v2026.04, it is also
> +      used for controlling the life cycle of a remote cluster. The
> +      specifier format is as per the bindings in
> +      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)
> +    items:
> +      anyOf:
> +        - description: resource table when firmware is started by the bootloader
> +        - description: remote cluster firmware image section
> +        - description: virtio device (vdev) buffer
> +        - description: vring0
> +        - description: vring1
> +
> +  memory-region-names:
> +    minItems: 1
> +    maxItems: 5
> +    items:
> +      anyOf:

Use 'enum'

> +        - const: rsc-table
> +        - const: firmware
> +        - const: buffer
> +        - const: vring0
> +        - const: vring1
> +
> +required:
> +  - compatible
> +
> +# Remote Cluster ID is derived either from the CPU phandle or
> +# from the mailbox specifier prior to HSS v2026.04
> +anyOf:
> +  - required:
> +      - cpu
> +  - required:
> +      - mboxes
> +
> +allOf:
> +  - if:
> +      properties:
> +        memory-region-names:
> +          contains:
> +            enum:
> +              - vring0
> +              - vring1
> +    then:
> +      properties:
> +        memory-region-names:
> +          contains:
> +            const: buffer
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    // Early boot mode example - firmware started by bootloader
> +    soc {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        remoteproc {
> +            compatible = "microchip,ipc-sbi-remoteproc";
> +            cpu = <&cpu4>;
> +            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";
> +            cpu = <&cpu4>;
> +            mboxes= <&ihc 8>;
> +            memory-region = <&cluster_firmware>, <&vdev0buffer>,
> +                            <&vdev0vring0>, <&vdev0vring1>;
> +            memory-region-names = "firmware", "buffer",
> +                                  "vring0", "vring1";
> +        };
> +    };
> +...
> -- 
> 2.34.1
> 

  reply	other threads:[~2026-01-29 17:32 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-26 12:06 [PATCH v3 0/2] Add Microchip IPC remoteproc support Valentina Fernandez
2026-01-26 12:06 ` [PATCH v3 1/2] dt-bindings: remoteproc: add Microchip IPC remoteproc Valentina Fernandez
2026-01-29 17:32   ` Rob Herring [this message]
2026-01-26 12:06 ` [PATCH v3 2/2] remoteproc: add support for Microchip IPC remoteproc platform driver Valentina Fernandez
2026-01-27 14:26   ` kernel test robot
2026-01-27 16:51   ` kernel test robot

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=20260129173252.GA1309005-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=valentina.fernandezalanis@microchip.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.