On Thu, Jul 30, 2026 at 09:34:09AM -0700, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <[email protected]>
>
> The carveout region names are derived based on the DT node names. Because
> of this, the DT node names are ABI, which is not supposed to happen.
>
> Fix this by documenting an additional, optional property:
> "memory-region-names". This way, the software will have a way to build the
> carveout region names without relying on the DT node names.

"After update all existing DT tree, this will be required.

>
> Signed-off-by: Laurentiu Mihalcea <[email protected]>
> ---

Additional information to help understand why it is important.

1. at thread wrong use vdevbuffer insteand vdev0buffer as node name
https://lore.kernel.org/imx/[email protected]/
2. similar case happen at
https://lore.kernel.org/imx/[email protected]/

Suppose these problem should be detected by dt binding check instead of
sashkio ai.


>  .../devicetree/bindings/remoteproc/fsl,imx-rproc.yaml         | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml 
> b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> index c18f71b64889..8e3e6676a95e 100644
> --- a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> @@ -62,6 +62,10 @@ properties:
>      minItems: 1
>      maxItems: 32
>
> +  memory-region-names:
> +    minItems: 1
> +    maxItems: 32
> +

Need restrict names

  memory-region-names:
    description:
      Names for the memory-region phandles. Each entry must be one of the
      following recognized names. "vdev0buffer" is the shared buffer for
      virtio device 0, handled automatically by the rproc virtio framework.
      "vdev<n>ring<n>" (e.g. "vdev0vring0", "vdev0vring1") are the virtio
      vring buffers for device N, also managed by the virtio framework.
      "rsc-table" is the resource table region used to share the resource
      table between Linux and the remote processor when it is pre-loaded in
      memory. All other entries are treated as generic carveout regions that
      are mapped and made available to the remote processor.
    minItems: 1
    maxItems: 32
    items:
      anyOf:
        - const: rsc-table
        - pattern: "^vdev[0-9]+buffer$"
        - pattern: "^vdev[0-9]+vring[0-9]+$"

Frank

>    power-domains:
>      minItems: 2
>      maxItems: 8
> --
> 2.53.0
>

Reply via email to