Re: [PATCH v2 02/12] arm64: dts: imx8qm-mek: fix reserved memory node names for remoteproc
[email protected] Wed, 29 Jul 2026 13:23:54 +0000
| Newsgroups | dev.linux.lists.imx,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: Pre-existing issues: - [High] Renaming the vring memory nodes for cm4-1 to `vdev2vring0` and `vdev3vring0` breaks static vring matching in the remoteproc core, causing a fallback to dynamic allocation and breaking IPC. - [High] The DSP's vdev buffer and vring nodes in `imx8qm-mek.dts` were missed during the rename, leaving them with the generic `memory` node name, which breaks the driver's memory region parsing and IPC. -- --- Patch [2]: [PATCH v2 02/12] arm64: dts: imx8qm-mek: fix reserved memory node names for remoteproc --- commit b33c57fd7f12629e7e4a66a20b899d545ad3c226 Author: Peng Fan <[email protected]> arm64: dts: imx8qm-mek: fix reserved memory node names for remoteproc The imx_rproc driver uses node names to identify reserved memory regions. It checks for "vdev0buffer" to skip mapping, "rsc-table" to locate the resource table, and "vdev" prefix to filter vdev regions. > diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts > index 9e49ac377162b..8b67fb5d670da 100644 > --- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts > +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts > @@ -44,57 +44,57 @@ reserved-memory { > #size-cells = <2>; > ranges; [ ... ] > - vdev2vring0: memory@90100000 { > + vdev2vring0: vdev2vring0@90100000 { [Severity: High] This isn't a bug introduced by this patch, but will this renaming actually work for the cm4-1 remoteproc instance? Since imx8qm-cm4-1 is an independent rproc instance, its first virtio device index is 0. Looking at the remoteproc core, rproc_alloc_vring() searches for vring carveouts using the format string "vdev%dvring%d". Because of this, won't the core search for "vdev0vring0" and "vdev0vring1" instead of "vdev2vring0"? If so, the mismatch would cause rproc_alloc_vring() to fail finding the carveout and fall back to dynamic allocation, potentially breaking IPC. > reg = <0 0x90100000 0 0x8000>; > no-map; > }; [ ... ] [Severity: High] This is a pre-existing issue, but were the DSP vdev buffer and vring nodes missed during this rename? Looking at dsp_vdev0buffer in the same file (which currently remains as memory@94300000), the imx_dsp_rproc driver will fail to skip the node because it evaluates strstarts(res.name, "vdev0buffer"). Since the node name remains "memory", won't remoteproc_virtio fall back to dynamic allocation from system memory and break IPC for the DSP? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=2