* [PATCH 1/7] arm64: dts: imx8dxl-evk: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:36 ` sashiko-bot
2026-07-29 1:25 ` [PATCH 2/7] arm64: dts: imx8qm-mek: " Peng Fan (OSS)
` (5 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: ee39dbd9a6cb ("arm64: dts: imx8dxl-evk: add imx8dxl_cm4, lsio mu5, related memory region")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
index 0ede0c7ed422c..6f79aaef2dbb7 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
@@ -29,7 +29,7 @@ imx8dxl-cm4 {
clocks = <&clk_dummy>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&lsio_mu5 0 1 &lsio_mu5 1 1 &lsio_mu5 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
power-domains = <&pd IMX_SC_R_M4_0_PID0>, <&pd IMX_SC_R_M4_0_MU_1A>;
fsl,resource-id = <IMX_SC_R_M4_0_PID0>;
@@ -90,7 +90,7 @@ rsc_table: memory-rsc-table@900ff000 {
no-map;
};
- vdevbuffer: memory-vdevbuffer@90400000 {
+ vdev0buffer: vdev0buffer@90400000 {
compatible = "shared-dma-pool";
reg = <0 0x90400000 0 0x100000>;
no-map;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 1/7] arm64: dts: imx8dxl-evk: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 ` [PATCH 1/7] arm64: dts: imx8dxl-evk: " Peng Fan (OSS)
@ 2026-07-29 1:36 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 1:36 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: devicetree, Frank.Li, robh, imx, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] Incomplete fix leaves vring and rsc_table nodes with generic names, wasting memory and breaking attach mode.
- [High] Incomplete fix across the subsystem: numerous other i.MX device trees retain the broken vdevbuffer node name.
--
--- Patch [1]: [PATCH 1/7] arm64: dts: imx8dxl-evk: rename vdevbuffer to vdev0buffer ---
commit e44444bca004c2c221c3822282c9e7af15531374
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx8dxl-evk: rename vdevbuffer to vdev0buffer
This commit renames the "vdevbuffer" node to "vdev0buffer" in the
imx8dxl-evk device tree. This ensures the imx_rproc driver correctly skips
mapping the vdev buffer region, avoiding an unnecessary duplicate mapping.
> diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
> index 0ede0c7ed422c..6f79aaef2dbb7 100644
> --- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
[ ... ]
> @@ -90,7 +90,7 @@ rsc_table: memory-rsc-table@900ff000 {
> no-map;
> };
>
[Severity: High]
This is a pre-existing issue, but does this fix leave the rsc_table and
vring nodes with generic names that will also fail the driver's checks?
Looking at drivers/remoteproc/imx_rproc.c:imx_rproc_addr_init(), it expects
a specific node name prefix:
if (strstarts(res.name, "rsc-table"))
priv->rsc_table = priv->mem[b].cpu_addr;
Because the node is named "memory-rsc-table", this check fails, leaving
priv->rsc_table NULL and breaking imx_rproc_get_loaded_rsc_table().
Similarly, if the vring nodes are named "memory0" and "memory" instead of
"vdev0vring0" and "vdev0vring1", they are registered with those generic
names by imx_rproc_prepare(). The remoteproc core's rproc_alloc_vring()
then searches for "vdev0vring0", fails to find the carveout, and falls
back to dynamic allocation, wasting the reserved memory regions.
> - vdevbuffer: memory-vdevbuffer@90400000 {
> + vdev0buffer: vdev0buffer@90400000 {
[Severity: High]
This isn't a bug introduced by this patch, but are there other i.MX device
trees that still retain the broken vdevbuffer node name?
For instance, arch/arm64/boot/dts/freescale/imx8dxl-sr-som.dtsi still has:
vdevbuffer: memory-vdevbuffer@90400000 {
Since drivers/remoteproc/imx_rproc.c:imx_rproc_prepare() uses string matching
to skip mapping the vdev buffer regions:
if (strstarts(res.name, "vdev0buffer"))
continue;
These other boards will still fail the check, causing redundant carveout
registration and wasted memory.
Should all affected boards (such as imx8qm-mek.dts and
imx93-11x11-evk-common.dtsi) be updated to use the expected names, or
could the driver be updated to rely on memory-region-names instead of
node names?
> compatible = "shared-dma-pool";
> reg = <0 0x90400000 0 0x100000>;
> no-map;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729-rproc-dts-v1-0-368bca0b309f@nxp.com?part=1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/7] arm64: dts: imx8qm-mek: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 1/7] arm64: dts: imx8dxl-evk: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:37 ` sashiko-bot
2026-07-29 1:25 ` [PATCH 3/7] arm64: dts: imx8qxp-mek: " Peng Fan (OSS)
` (4 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: 52c9971edd4f ("arm64: dts: imx8qm-mek: add cm4 remote-proc and related memory region")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
index 9e49ac377162b..50aa1e3419651 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
@@ -94,7 +94,7 @@ rsc_table1: memory@901ff000 {
no-map;
};
- vdevbuffer: memory@90400000 {
+ vdev0buffer: vdev0buffer@90400000 {
compatible = "shared-dma-pool";
reg = <0 0x90400000 0 0x100000>;
no-map;
@@ -456,7 +456,7 @@ imx8qm-cm4-0 {
mboxes = <&lsio_mu5 0 1
&lsio_mu5 1 1
&lsio_mu5 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table0>;
power-domains = <&pd IMX_SC_R_M4_0_PID0>, <&pd IMX_SC_R_M4_0_MU_1A>;
@@ -471,7 +471,7 @@ imx8qm-cm4-1 {
mboxes = <&lsio_mu6 0 1
&lsio_mu6 1 1
&lsio_mu6 3 1>;
- memory-region = <&vdevbuffer>, <&vdev2vring0>, <&vdev2vring1>,
+ memory-region = <&vdev0buffer>, <&vdev2vring0>, <&vdev2vring1>,
<&vdev3vring0>, <&vdev3vring1>, <&rsc_table1>;
power-domains = <&pd IMX_SC_R_M4_1_PID0>, <&pd IMX_SC_R_M4_1_MU_1A>;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 2/7] arm64: dts: imx8qm-mek: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 ` [PATCH 2/7] arm64: dts: imx8qm-mek: " Peng Fan (OSS)
@ 2026-07-29 1:37 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 1:37 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: robh, conor+dt, devicetree, Frank.Li, imx
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] The patch only renames the `vdev0buffer` node, missing identical node-name string-matching bugs for the DSP vdev buffer, the vrings, and the resource tables in the same file.
- [High] The fix for the vdev buffer node name is strictly isolated to imx8qm-mek, leaving numerous other i.MX device trees suffering from the exact same bug.
--
--- Patch [2]: [PATCH 2/7] arm64: dts: imx8qm-mek: rename vdevbuffer to vdev0buffer ---
commit ce17c79a2ee7822b12884c5a6ce5b992a2195b5e
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx8qm-mek: rename vdevbuffer to vdev0buffer
This commit renames the vdevbuffer node to vdev0buffer in the imx8qm-mek
device tree. This ensures the imx_rproc driver correctly identifies the node
by name and skips mapping the vdev buffer region.
> diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> index 9e49ac377162b..50aa1e3419651 100644
> --- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> @@ -94,7 +94,7 @@ rsc_table1: memory@901ff000 {
> no-map;
> };
>
> - vdevbuffer: memory@90400000 {
> + vdev0buffer: vdev0buffer@90400000 {
[Severity: High]
This is a pre-existing issue, but this patch only renames the vdev0buffer
node, missing identical node-name string-matching bugs for the DSP vdev
buffer, the vrings, and the resource tables in this same file.
For example, rsc_table0 is named memory@900ff000:
arch/arm64/boot/dts/freescale/imx8qm-mek.dts:
rsc_table0: memory@900ff000 {
...
This causes it to fail the strstarts() check for "rsc-table" in the driver:
drivers/remoteproc/imx_rproc.c:imx_rproc_addr_init() {
...
if (strstarts(res.name, "rsc-table"))
priv->rsc_table = priv->mem[b].cpu_addr;
...
}
This completely breaks IPC/virtio initialization if the remote processor is
attached in a running state, leaving priv->rsc_table as NULL.
Similarly, vdev0vring0 and dsp_vdev0buffer are named memory@..., failing
their respective strstarts() checks and causing them to be incorrectly
mapped.
Could these other nodes be renamed as well to fix the matching logic?
[Severity: High]
This is also a pre-existing issue, but the fix for the vdev buffer node name
seems strictly isolated to imx8qm-mek, leaving numerous other i.MX device
trees suffering from the exact same bug.
For example, imx93-11x11-evk-common.dtsi uses vdevbuffer@a4020000:
arch/arm64/boot/dts/freescale/imx93-11x11-evk-common.dtsi:
vdevbuffer: vdevbuffer@a4020000 {
...
And imx8qxp-mek.dts uses memory@900ff000 for the rsc_table.
These boards will continue to experience unnecessary carveout mappings and
broken resource table lookups because they fail the same strict strstarts()
checks.
Could this be addressed across all affected device trees, or perhaps the
driver itself could be modified to match the existing generic names
(e.g., matching "vdev" instead of exactly "vdev0buffer")?
> compatible = "shared-dma-pool";
> reg = <0 0x90400000 0 0x100000>;
> no-map;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729-rproc-dts-v1-0-368bca0b309f@nxp.com?part=2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/7] arm64: dts: imx8qxp-mek: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 1/7] arm64: dts: imx8dxl-evk: " Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 2/7] arm64: dts: imx8qm-mek: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:36 ` sashiko-bot
2026-07-29 1:25 ` [PATCH 4/7] arm64: dts: imx8ulp-evk: " Peng Fan (OSS)
` (3 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: 5fa302590f17 ("arm64: dts: imx8qxp-mek: add cm4 and related nodes")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
index 857a6e5122283..a3bf12d9e41b3 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -27,7 +27,7 @@ imx8x_cm4: imx8x-cm4 {
mboxes = <&lsio_mu5 0 1
&lsio_mu5 1 1
&lsio_mu5 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
power-domains = <&pd IMX_SC_R_M4_0_PID0>,
<&pd IMX_SC_R_M4_0_MU_1A>;
@@ -267,7 +267,7 @@ rsc_table: memory@900ff000 {
no-map;
};
- vdevbuffer: memory@90400000 {
+ vdev0buffer: vdev0buffer@90400000 {
compatible = "shared-dma-pool";
reg = <0 0x90400000 0 0x100000>;
no-map;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 3/7] arm64: dts: imx8qxp-mek: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 ` [PATCH 3/7] arm64: dts: imx8qxp-mek: " Peng Fan (OSS)
@ 2026-07-29 1:36 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 1:36 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: robh, imx, conor+dt, devicetree, Frank.Li
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Incomplete fix for remoteproc driver node name string matching, causing wasted CMA memory and broken resource table loading.
--
--- Patch [3]: [PATCH 3/7] arm64: dts: imx8qxp-mek: rename vdevbuffer to vdev0buffer ---
commit 3123a86d4f3fafc543a5613360cdacc5946dbc06
Author: Peng Fan <peng.fan@nxp.com>
Date: Wed Jul 29 01:25:38 2026 +0000
arm64: dts: imx8qxp-mek: rename vdevbuffer to vdev0buffer
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region. This commit renames the device tree node to
"vdev0buffer" to match what the driver expects.
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -267,7 +267,7 @@ rsc_table: memory@900ff000 {
no-map;
};
[Severity: High]
This is a pre-existing issue, but does this incomplete node renaming leave
other remoteproc string-matching checks broken?
Since this patch corrects the node name for the vdev buffer, what about the
sibling nodes like the resource table above, or the vrings?
The imx_rproc driver's address initialization relies on the device tree
node name string to filter memory regions:
drivers/remoteproc/imx_rproc.c:imx_rproc_addr_init() {
...
/* Not map vdevbuffer, vdevring region */
if (strstarts(res.name, "vdev"))
continue;
...
}
Because the vring nodes (like vdev0vring0) and the resource table node are
still generically named "memory" in the device tree, they will fail these
checks.
Does this cause the vring memory to be unnecessarily mapped, forcing
rproc_alloc_vring() to dynamically allocate CMA memory and waste the
pre-reserved regions because it cannot find its pre-registered carveout?
Furthermore, does the rsc_table name mismatch break the fallback logic
that loads a memory-provided resource table, since priv->rsc_table is
never successfully populated?
Other boards appear to have identical issues. For example, in imx8qm-mek.dts,
dsp_vdev0buffer is also named "memory" instead of "dsp_vdev0buffer". Should
we update the node names for the vrings and resource tables across these
boards as well to fully fix the string matching logic?
> - vdevbuffer: memory@90400000 {
> + vdev0buffer: vdev0buffer@90400000 {
> compatible = "shared-dma-pool";
> reg = <0 0x90400000 0 0x100000>;
> no-map;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729-rproc-dts-v1-0-368bca0b309f@nxp.com?part=3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/7] arm64: dts: imx8ulp-evk: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
` (2 preceding siblings ...)
2026-07-29 1:25 ` [PATCH 3/7] arm64: dts: imx8qxp-mek: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:35 ` sashiko-bot
2026-07-29 1:25 ` [PATCH 5/7] arm64: dts: imx93-11x11-frdm: " Peng Fan (OSS)
` (2 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: 014fbffa25a7 ("arm64: dts: imx8ulp-evk: enable CM33 node")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
index 5dea66c1e7aa0..48a3e40053299 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
@@ -67,7 +67,7 @@ vdev1vring1: vdev1vring1@aff18000 {
no-map;
};
- vdevbuffer: vdevbuffer@a8400000 {
+ vdev0buffer: vdev0buffer@a8400000 {
compatible = "shared-dma-pool";
reg = <0 0xa8400000 0 0x100000>;
no-map;
@@ -126,7 +126,7 @@ &cm33 {
mboxes = <&mu 0 1>,
<&mu 1 1>,
<&mu 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 4/7] arm64: dts: imx8ulp-evk: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 ` [PATCH 4/7] arm64: dts: imx8ulp-evk: " Peng Fan (OSS)
@ 2026-07-29 1:35 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 1:35 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: robh, devicetree, Frank.Li, conor+dt, imx
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] An off-by-one error in address bounds checking incorrectly rejects memory translations that exactly fit within a region.
- [Medium] DT ABI breakage and incomplete fix by renaming device tree nodes instead of fixing the driver.
--
--- Patch [4]: [PATCH 4/7] arm64: dts: imx8ulp-evk: rename vdevbuffer to vdev0buffer ---
commit 6ba801ee20ee0b1a91efe7b3138304a45163e3aa
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx8ulp-evk: rename vdevbuffer to vdev0buffer
The imx_rproc driver expects the virtio buffer node to be named
"vdev0buffer" to skip mapping the vdev buffer region. This patch
renames the node to match what the driver expects.
> diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
> index 5dea66c1e7aa0..48a3e40053299 100644
> --- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
> @@ -67,7 +67,7 @@ vdev1vring1: vdev1vring1@aff18000 {
> no-map;
> };
>
> - vdevbuffer: vdevbuffer@a8400000 {
> + vdev0buffer: vdev0buffer@a8400000 {
[Severity: Medium]
This is a pre-existing issue, but does renaming the node here break Device
Tree ABI compatibility?
Users running newer kernels with older DTBs will still experience the mapping
bug because the driver remains hardcoded to expect "vdev0buffer".
Additionally, there are other in-tree boards (such as
imx93-11x11-evk-common.dtsi) that still use "vdevbuffer".
Should the underlying driver bug in imx_rproc_prepare() be fixed instead
to support the legacy node name?
drivers/remoteproc/imx_rproc.c:imx_rproc_prepare() {
...
if (strstarts(res.name, "vdev0buffer"))
...
}
> compatible = "shared-dma-pool";
> reg = <0 0xa8400000 0 0x100000>;
> no-map;
[ ... ]
[Severity: High]
This isn't a bug introduced by this patch, but while looking at the
imx_rproc driver, is there an off-by-one error in the address bounds
checking?
In imx_rproc_da_to_sys() and imx_rproc_da_to_va(), a strictly-less-than
operator is used for the upper bound limit:
drivers/remoteproc/imx_rproc.c:imx_rproc_da_to_sys() {
...
if (da >= att->da && da + len < att->da + att->size) {
...
}
If a firmware segment request perfectly fills the remainder of the region
(where da + len == att->da + att->size), it appears this valid request
evaluates to false and the translation gets wrongly rejected.
Could this cause valid firmware segments to fail to load, and should this
check use <= instead?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729-rproc-dts-v1-0-368bca0b309f@nxp.com?part=4
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/7] arm64: dts: imx93-11x11-frdm: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
` (3 preceding siblings ...)
2026-07-29 1:25 ` [PATCH 4/7] arm64: dts: imx8ulp-evk: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 6/7] arm64: dts: imx93-14x14-evk: " Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 7/7] arm64: dts: imx93-9x9-qsb: " Peng Fan (OSS)
6 siblings, 0 replies; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: eb2f28413e23 ("arm64: dts: freescale: add support for NXP i.MX93 FRDM")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
index bd14ba28690c0..0f75524ab7354 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
@@ -114,7 +114,7 @@ vdev1vring1: vdev1vring1@a4018000 {
no-map;
};
- vdevbuffer: vdevbuffer@a4020000 {
+ vdev0buffer: vdev0buffer@a4020000 {
compatible = "shared-dma-pool";
reg = <0 0xa4020000 0 0x100000>;
no-map;
@@ -148,7 +148,7 @@ &cm33 {
<&mu1 1 1>,
<&mu1 3 1>;
mbox-names = "tx", "rx", "rxdb";
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 6/7] arm64: dts: imx93-14x14-evk: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
` (4 preceding siblings ...)
2026-07-29 1:25 ` [PATCH 5/7] arm64: dts: imx93-11x11-frdm: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
2026-07-29 1:25 ` [PATCH 7/7] arm64: dts: imx93-9x9-qsb: " Peng Fan (OSS)
6 siblings, 0 replies; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: 0481dadbc5e5 ("arm64: dts: imx93: support i.MX93-14x14-EVK board")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
index ec78c03f4788b..3ea50d8080344 100644
--- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
@@ -75,7 +75,7 @@ rsc_table: rsc-table@2021e000 {
no-map;
};
- vdevbuffer: vdevbuffer@a4020000 {
+ vdev0buffer: vdev0buffer@a4020000 {
compatible = "shared-dma-pool";
reg = <0 0xa4020000 0 0x100000>;
no-map;
@@ -222,7 +222,7 @@ &cm33 {
mboxes = <&mu1 0 1>,
<&mu1 1 1>,
<&mu1 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 7/7] arm64: dts: imx93-9x9-qsb: rename vdevbuffer to vdev0buffer
2026-07-29 1:25 [PATCH 0/7] arm64: dts: freescale: rename vdevbuffer to vdev0buffer Peng Fan (OSS)
` (5 preceding siblings ...)
2026-07-29 1:25 ` [PATCH 6/7] arm64: dts: imx93-14x14-evk: " Peng Fan (OSS)
@ 2026-07-29 1:25 ` Peng Fan (OSS)
6 siblings, 0 replies; 12+ messages in thread
From: Peng Fan (OSS) @ 2026-07-29 1:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Francesco Valla
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
The imx_rproc driver checks for the name "vdev0buffer" to skip mapping
the vdev buffer region, as it is handled by rproc_add_virtio_dev.
With the node named "vdevbuffer", the check fails and the region gets
unnecessarily mapped. Rename it to "vdev0buffer" to match what the
driver expects.
Fixes: 0565d20cd8c2 ("arm64: dts: freescale: Support i.MX93 9x9 Quick Start Board")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
index 01c11c517986a..f07e93653e4e6 100644
--- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
@@ -76,7 +76,7 @@ rsc_table: rsc-table@2021e000 {
no-map;
};
- vdevbuffer: vdevbuffer@a4020000 {
+ vdev0buffer: vdev0buffer@a4020000 {
compatible = "shared-dma-pool";
reg = <0 0xa4020000 0 0x100000>;
no-map;
@@ -212,7 +212,7 @@ &cm33 {
mboxes = <&mu1 0 1>,
<&mu1 1 1>,
<&mu1 3 1>;
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>,
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread