[PATCH V8 0/7] remoteproc: imx_rproc: support i.MX8QM/QXP

From: Peng Fan (OSS)
Date: Fri Oct 21 2022 - 00:14:12 EST


From: Peng Fan <peng.fan@xxxxxxx>

V8:
patch 2/7: Per Krzysztof, keep alphabetical order for compatible string
Patch 6/7: Add comments to explain the tx_ch/rx_ch check in imx_rproc_xtr_mbox_init,
to address comment: https://lore.kernel.org/all/20221017173335.GA121862@p14s/

V7:
patch 3/7: use dev_err, and R-b from Mathieu
patch 4/7: Add comment when "num_pd <= 1", add R-b from Mathieu
patch 5/7: Typo has->have, add R-b from Mathieu
patch 6/7: add detach hook to free the mbox. As wrote in the patch commit log,
imx_rproc_xtr_mbox_init is called both in probe and attach hook to resolve
mbox defer probe, so there is check in imx_rproc_xtr_mbox_init.
Moved imx_rproc_free_mbox out from parition notify to detach hook
patch 7/7: since detach hook moved to patch 6/7, so only enable recovery feature.

https://lore.kernel.org/all/20221014031037.1070424-1-peng.fan@xxxxxxxxxxx/

V6:
Two changes are made:
1.
In V5, patch 3 has a wrong logic in imx_rproc_put_scu, see [1], however
patch 4 fixed the wrong logic, as below:

- if (!imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc_id))
- return;
+ if (imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc_id))
+ return imx_rproc_detach_pd(rproc);

In V6, patch 3 fixed the wrong logic, drop the fix in patch 4. And patch 4
changed as below, because put scu not has return value.
imx_rproc_detach_pd(rproc);
return;

2. Include patch 7/7 to enable attach recovery, because the attach recovery
feature has been supported in remoteproc core.

[1] https://lore.kernel.org/linux-remoteproc/DU0PR04MB941763C3EBF8AE9A9CD69445884C9@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/#m87e2864260d0a1c431b577068ba79e1d64c595f1

V5:
The patchset could not apply on latest remoteproc for-next branch,
so rebased. Only patch 6 has a minor conflict, other patches are not
changed.

V4:
https://lore.kernel.org/all/20220701104725.557314-1-peng.fan@xxxxxxxxxxx/
Add R-b from DT maintainer
Fix probe failure and driver remove path in patch 3, 4
Add comments about i.MX8QM entries filter in patch 5

V3:
Drop the dependency in V2.
Tested on i.MX8QM/8MM
Use 'fsl,resource-id' and 'fsl,entry-address' Per dt maintainer
Drop 'reg' property Per remoteproc maintainer
Drop mcore self recovery, until we land in common framework support.
https://patchwork.kernel.org/project/linux-remoteproc/cover/20220517064937.4033441-1-peng.fan@xxxxxxxxxxx/

V2:
https://patchwork.kernel.org/project/linux-remoteproc/cover/20220309102118.8131-1-peng.fan@xxxxxxxxxxx/
Depends on https://patchwork.kernel.org/project/linux-remoteproc/list/?series=621311
Tested on i.MX8QXP/QM/8MP
Addressed Mathieu's comments
Drop V1 patch 5/9, patch 3/9 is replaced with upper dependency patchset
Move V1 patch 4/9 out to https://patchwork.kernel.org/project/linux-remoteproc/patch/20220308065754.3355-1-peng.fan@xxxxxxxxxxx/
Update commit log
Drop magic number to get entry address from device tree in patch 4/6

The V1 patchset:
https://patchwork.kernel.org/project/linux-remoteproc/patch/20220111033333.403448-4-peng.fan@xxxxxxxxxxx/

Peng Fan (7):
dt-bindings: remoteproc: imx_rproc: support i.MX8QXP
dt-bindings: remoteproc: imx_rproc: support i.MX8QM
remoteproc: imx_rproc: support attaching to i.MX8QXP M4
remoteproc: imx_rproc: support kicking Mcore from Linux for i.MX8QXP
remoteproc: imx_rproc: support i.MX8QM
remoteproc: imx_rproc: request mbox channel later
remoteproc: imx_rproc: Enable attach recovery for i.MX8QM/QXP

.../bindings/remoteproc/fsl,imx-rproc.yaml | 16 +
drivers/remoteproc/imx_rproc.c | 294 +++++++++++++++++-
2 files changed, 304 insertions(+), 6 deletions(-)

--
2.37.1