* [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI.
@ 2026-10-23 19:52 Frank.Li
2026-10-23 19:52 ` [PATCH v9 1/2] dt-bindings: remoteproc: imx_rproc: document " Frank.Li
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Frank.Li @ 2026-10-23 19:52 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Peng Fan
Cc: linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel,
Laurentiu Mihalcea, Frank Li, Francesco Valla
The driver currently derives the memory region type from the referenced
memory node name, creating a implicit DT ABI.
rsc_table: rsc-table@90000000
^^^^^^^^
{ ret = <0x90000000>;
no-map;
}
m4 {
...
memory-region = <&rsc_table>;
}
Current require node name have to be rsc-table, but no any binding doc
to restrict it.
Since memory node names are not constrained by the binding, incorrect names
can silently pass DT validation, as seen in examples using "vdevbuffer"
instead of "vdev0buffer" ([1] and [2]).
Add optional memory-region-names property to define such ABI. To keep
back compactiblity, use "optional".
Link: https://lore.kernel.org/imx/a3602ef8-2b77-4cc3-adef-2c4cba08a5d9@nabladev.com/ [1]
Link: https://lore.kernel.org/imx/alexXTYQHUs76J7v@SMW015318/T/#mb9dc709ff3adc24d9db6d30c973f37b580f6f1f9 [2]
Prevous version
https://lore.kernel.org/imx/ail0sH1UhnQBPRkr@SMW015318/
---
Changes in v9:
- s/hidden/implicit/g, sorry, missed at v8
- Link to v8: https://patch.msgid.link/20261022-memory-region-name-v8-0-ce5ce514a550@nxp.com
Changes in v8:
- remove dev_warning
- remove dts patches
- Link to v7: https://patch.msgid.link/20261020-memory-region-name-v7-0-1413d5928340@nxp.com
Changes in v7:
- move imx_rproc_rmem_to_resource() close to caller
- collect Francesco and peng fan's review tag
- Link to v6: https://patch.msgid.link/20261019-memory-region-name-v6-0-2e46b2e7d667@nxp.com
Changes in v6:
- collect rob's review-by tags for binding
- move imx_rproc_rmem_to_resource to c file
- dts move related memory region node into overlay file
- Link to v5: https://patch.msgid.link/20261015-memory-region-name-v5-0-abc358b39a96@nxp.com
Changes in v5:
- fix binding region-memory-names's pattern
- add vdev1vring0 and vdev1vring1 at dts
- collect pan peng's review by tags
- Link to v4: https://patch.msgid.link/20260917-memory-region-name-v4-0-260755920ebf@nxp.com
Change in v3
- rephrase commit message and cover letter to correct descritpion and
reasons.
To: Bjorn Andersson <andersson@kernel.org>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Sascha Hauer <s.hauer@pengutronix.de>
To: Pengutronix Kernel Team <kernel@pengutronix.de>
To: Fabio Estevam <festevam@gmail.com>
To: Peng Fan <peng.fan@nxp.com>
Cc: linux-remoteproc@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Laurentiu Mihalcea (2):
dt-bindings: remoteproc: imx_rproc: document memory-region-names to avoid implicit ABI
remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI
.../bindings/remoteproc/fsl,imx-rproc.yaml | 11 ++++++++
drivers/remoteproc/imx_rproc.c | 29 ++++++++++++++++++++--
2 files changed, 38 insertions(+), 2 deletions(-)
---
base-commit: d419d682257d813f6cb7a28e42b35d0edf4ad038
change-id: 20260915-memory-region-name-f950eea2b78d
Best regards,
--
Frank Li <Frank.Li@nxp.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v9 1/2] dt-bindings: remoteproc: imx_rproc: document memory-region-names to avoid implicit ABI
2026-10-23 19:52 [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI Frank.Li
@ 2026-10-23 19:52 ` Frank.Li
2026-10-23 19:52 ` [PATCH v9 2/2] remoteproc: imx_rpoc: use " Frank.Li
2026-10-27 15:50 ` [PATCH v9 0/2] " Mathieu Poirier
2 siblings, 0 replies; 4+ messages in thread
From: Frank.Li @ 2026-10-23 19:52 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Peng Fan
Cc: linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel,
Laurentiu Mihalcea, Frank Li
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Document the optional memory-region-names property.
The driver currently derives the memory region type from the referenced
memory node name, creating a implicit DT ABI. Since memory node names are
not constrained by the binding, incorrect names can silently pass DT
validation, as seen in examples using "vdevbuffer" instead of
"vdev0buffer" ([1] and [2]).
Add memory-region-names to explicitly identify the expected memory regions
and avoid relying on memory node names as ABI.
Link: https://lore.kernel.org/imx/a3602ef8-2b77-4cc3-adef-2c4cba08a5d9@nabladev.com/ [1]
Link: https://lore.kernel.org/imx/alexXTYQHUs76J7v@SMW015318/T/#mb9dc709ff3adc24d9db6d30c973f37b580f6f1f9 [2]
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Use optional property to keep back compatible with old platform.
New platform should use memory-region-names.
---
.../devicetree/bindings/remoteproc/fsl,imx-rproc.yaml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
index c18f71b648890..f87036299a7b6 100644
--- a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
@@ -62,6 +62,15 @@ properties:
minItems: 1
maxItems: 32
+ memory-region-names:
+ minItems: 1
+ maxItems: 32
+ items:
+ anyOf:
+ - const: rsc-table
+ - pattern: "^vdev[0-9]+(buffer|vring[0-9]+)$"
+ - pattern: "^m(4|7|33)-reserved(-[a-z0-9-]+)+$"
+
power-domains:
minItems: 2
maxItems: 8
@@ -134,6 +143,7 @@ examples:
imx7d-cm4 {
compatible = "fsl,imx7d-cm4";
memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
+ memory-region-names = "m4-reserved-sysmem1", "m4-reserved-sysmem2";
syscon = <&src>;
clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
};
@@ -149,6 +159,7 @@ examples:
&mu 1 1
&mu 3 1>;
memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
+ memory-region-names = "vdev0buffer", "vdev0vring0", "vdev0vring1", "rsc-table";
syscon = <&src>;
};
...
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v9 2/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI
2026-10-23 19:52 [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI Frank.Li
2026-10-23 19:52 ` [PATCH v9 1/2] dt-bindings: remoteproc: imx_rproc: document " Frank.Li
@ 2026-10-23 19:52 ` Frank.Li
2026-10-27 15:50 ` [PATCH v9 0/2] " Mathieu Poirier
2 siblings, 0 replies; 4+ messages in thread
From: Frank.Li @ 2026-10-23 19:52 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Peng Fan
Cc: linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel,
Laurentiu Mihalcea, Frank Li, Francesco Valla
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The driver currently derives the memory region type from the referenced
memory node name, creating a implicit DT ABI. Since memory node names are
not constrained by the binding, incorrect names can silently pass DT
validation, as seen in examples using "vdevbuffer" instead of
"vdev0buffer" ([1] and [2]).
Parse memory-region-names to identify the expected memory regions and avoid
relying on memory node names as ABI.
Link: https://lore.kernel.org/imx/a3602ef8-2b77-4cc3-adef-2c4cba08a5d9@nabladev.com/ [1]
Link: https://lore.kernel.org/imx/alexXTYQHUs76J7v@SMW015318/T/#mb9dc709ff3adc24d9db6d30c973f37b580f6f1f9 [2]
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Francesco Valla <francesco@valla.it>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/remoteproc/imx_rproc.c | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 581bb07f5893f..2707040f16d06 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -635,6 +635,25 @@ static int imx_rproc_sm_lmm_prepare(struct rproc *rproc)
return 0;
}
+static int imx_rproc_rmem_to_resource(struct device_node *np,
+ int index,
+ struct resource *res)
+{
+ int ret;
+
+ ret = of_reserved_mem_region_to_resource(np, index, res);
+ if (ret)
+ return ret;
+
+ /* "memory-region-names" is optional */
+ ret = of_property_read_string_index(np, "memory-region-names",
+ index, &res->name);
+ if (ret == -EINVAL)
+ return 0;
+
+ return ret;
+}
+
static int imx_rproc_prepare(struct rproc *rproc)
{
struct imx_rproc *priv = rproc->priv;
@@ -648,7 +667,7 @@ static int imx_rproc_prepare(struct rproc *rproc)
int err;
struct resource res;
- err = of_reserved_mem_region_to_resource(np, i++, &res);
+ err = imx_rproc_rmem_to_resource(np, i++, &res);
if (err)
break;
@@ -823,11 +842,17 @@ static int imx_rproc_addr_init(struct imx_rproc *priv,
if (nph <= 0)
return 0;
+ if (of_property_present(np, "memory-region-names") &&
+ nph != of_property_count_strings(np, "memory-region-names")) {
+ dev_err(dev, "invalid reserved memory name count\n");
+ return -EINVAL;
+ }
+
/* remap optional addresses */
for (a = 0; a < nph; a++) {
struct resource res;
- err = of_reserved_mem_region_to_resource(np, a, &res);
+ err = imx_rproc_rmem_to_resource(np, a, &res);
if (err) {
dev_err(dev, "unable to resolve memory region\n");
return err;
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI.
2026-10-23 19:52 [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI Frank.Li
2026-10-23 19:52 ` [PATCH v9 1/2] dt-bindings: remoteproc: imx_rproc: document " Frank.Li
2026-10-23 19:52 ` [PATCH v9 2/2] remoteproc: imx_rpoc: use " Frank.Li
@ 2026-10-27 15:50 ` Mathieu Poirier
2 siblings, 0 replies; 4+ messages in thread
From: Mathieu Poirier @ 2026-10-27 15:50 UTC (permalink / raw)
To: Frank.Li
Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan,
linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel,
Laurentiu Mihalcea, Frank Li, Francesco Valla
I will apply this patchset when 7.4-rc1 comes out.
Thanks,
Mathieu
On Fri, Oct 23, 2026 at 03:52:48PM -0400, Frank.Li@oss.nxp.com wrote:
> The driver currently derives the memory region type from the referenced
> memory node name, creating a implicit DT ABI.
>
> rsc_table: rsc-table@90000000
> ^^^^^^^^
> { ret = <0x90000000>;
> no-map;
> }
>
> m4 {
> ...
> memory-region = <&rsc_table>;
> }
>
> Current require node name have to be rsc-table, but no any binding doc
> to restrict it.
>
> Since memory node names are not constrained by the binding, incorrect names
> can silently pass DT validation, as seen in examples using "vdevbuffer"
> instead of "vdev0buffer" ([1] and [2]).
>
> Add optional memory-region-names property to define such ABI. To keep
> back compactiblity, use "optional".
>
> Link: https://lore.kernel.org/imx/a3602ef8-2b77-4cc3-adef-2c4cba08a5d9@nabladev.com/ [1]
> Link: https://lore.kernel.org/imx/alexXTYQHUs76J7v@SMW015318/T/#mb9dc709ff3adc24d9db6d30c973f37b580f6f1f9 [2]
>
> Prevous version
> https://lore.kernel.org/imx/ail0sH1UhnQBPRkr@SMW015318/
>
> ---
> Changes in v9:
> - s/hidden/implicit/g, sorry, missed at v8
> - Link to v8: https://patch.msgid.link/20261022-memory-region-name-v8-0-ce5ce514a550@nxp.com
>
> Changes in v8:
> - remove dev_warning
> - remove dts patches
> - Link to v7: https://patch.msgid.link/20261020-memory-region-name-v7-0-1413d5928340@nxp.com
>
> Changes in v7:
> - move imx_rproc_rmem_to_resource() close to caller
> - collect Francesco and peng fan's review tag
> - Link to v6: https://patch.msgid.link/20261019-memory-region-name-v6-0-2e46b2e7d667@nxp.com
>
> Changes in v6:
> - collect rob's review-by tags for binding
> - move imx_rproc_rmem_to_resource to c file
> - dts move related memory region node into overlay file
> - Link to v5: https://patch.msgid.link/20261015-memory-region-name-v5-0-abc358b39a96@nxp.com
>
> Changes in v5:
> - fix binding region-memory-names's pattern
> - add vdev1vring0 and vdev1vring1 at dts
> - collect pan peng's review by tags
> - Link to v4: https://patch.msgid.link/20260917-memory-region-name-v4-0-260755920ebf@nxp.com
>
> Change in v3
> - rephrase commit message and cover letter to correct descritpion and
> reasons.
>
> To: Bjorn Andersson <andersson@kernel.org>
> To: Mathieu Poirier <mathieu.poirier@linaro.org>
> To: Rob Herring <robh@kernel.org>
> To: Krzysztof Kozlowski <krzk+dt@kernel.org>
> To: Conor Dooley <conor+dt@kernel.org>
> To: Sascha Hauer <s.hauer@pengutronix.de>
> To: Pengutronix Kernel Team <kernel@pengutronix.de>
> To: Fabio Estevam <festevam@gmail.com>
> To: Peng Fan <peng.fan@nxp.com>
> Cc: linux-remoteproc@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: imx@lists.linux.dev
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Cc: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
>
> ---
> Laurentiu Mihalcea (2):
> dt-bindings: remoteproc: imx_rproc: document memory-region-names to avoid implicit ABI
> remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI
>
> .../bindings/remoteproc/fsl,imx-rproc.yaml | 11 ++++++++
> drivers/remoteproc/imx_rproc.c | 29 ++++++++++++++++++++--
> 2 files changed, 38 insertions(+), 2 deletions(-)
> ---
> base-commit: d419d682257d813f6cb7a28e42b35d0edf4ad038
> change-id: 20260915-memory-region-name-f950eea2b78d
>
> Best regards,
> --
> Frank Li <Frank.Li@nxp.com>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-27 15:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-23 19:52 [PATCH v9 0/2] remoteproc: imx_rpoc: use memory-region-names to avoid implicit ABI Frank.Li
2026-10-23 19:52 ` [PATCH v9 1/2] dt-bindings: remoteproc: imx_rproc: document " Frank.Li
2026-10-23 19:52 ` [PATCH v9 2/2] remoteproc: imx_rpoc: use " Frank.Li
2026-10-27 15:50 ` [PATCH v9 0/2] " Mathieu Poirier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox