RE: [REGRESSION] Kernel reboots unexpectdely on i.MX8X when Cortex-M4 is running and it was started by U-Boot bootaux

From: Peng Fan
Date: Mon Apr 14 2025 - 20:11:46 EST


> Subject: Re: [REGRESSION] Kernel reboots unexpectdely on i.MX8X
> when Cortex-M4 is running and it was started by U-Boot bootaux
>
> Hi Peng,
>
> On Mon, Apr 14, 2025 at 06:09:49AM +0000, Peng Fan wrote:
> >
> > In your case, m4 is in same scu partition as a53, so m4 power domain
> > is manageable(owned) by Linux.
> >
> > However to m4 earlyboot(kicked by bootloader), if you not wanna
> linux
> > to handle m4, use scu_rm to create a separate partition in u-boot.
> > If you wanna linux to handle m4, but not wanna linux to shutdown
> the
> > pd in kernel boot, imx_rproc.c needs to be built in, and need to add a
> > clock entry or use clock optional api in imx_rproc.c .
> >
> > Current imx_rproc.c needs a clock entry to probe pass.
> >
> > I think in your case, this driver not probe pass, so the
> > M4 pd still get powered off.
>
> This was correct, indeed. I was not able to find exactly where the
> cortex-m4 clock is defined, so I added a clk_dummy to the imx8x-cm4
> remoteproc node and now it works, the code continues to run and I
> can control the m4 with Linux. Thanks!
>
> One thing that I noticed is I cannot make the RPMsg work with this
> devicetree node, even tought I assigned the correct memory-regions
> (vdev0buffer, vdev0ring0...). Also tested with the rpmsg-lite from the
> linux-imx. Is this supposed to work with RPMsg as well?

To make rpmsg work, you need a m4 demo that could publish
resource table, such as i.MX tty echo or pingpong demo.

There is downstream rpmsg driver under drivers/rpmsg/imx_*.c
that could be used to talk with m4.

helloworld demo does not have any virtio devices, so no rpmsg.

Regards,
Peng.

>
> >
> >
> > Regards,
> > Peng.
> >
>
> Hiago