HMP overlay not working on Colibri i.MX8X, Torizon 6.5

We’re trying to boot the M4.

Now, in Torizon 6.2 nothing seemed to allow this to be done - the HMP overlay was not present in the build, and U-Boot couldn’t be used because “bootaux” was missing.

So, we’ve moved to Torizon 6.5.

bootaux is no longer missing but we’d much rather control the M4 image from within Linux.

I’ve followed the instructions in How to Use RemoteProc | Toradex Developer Center

According to /proc/device-tree/chosen/overlays, the HMP overlay has been loaded successfully. However, there’s nothing in dmesg to suggest that remote proc has been loaded, and /sys/class/remoteproc is empty.

Does anyone have ideas on what is going wrong, or how to debug this issue please?

OK, so Cortex-M RPMsg Guide | Toradex Developer Center appears to me to refer to the same colibri-imx8x_hmp_overlay.dts file as How to Use RemoteProc | Toradex Developer Center but the two articles state different dmesg content.

RPMsg dmesg content is there on our SOM with the overlay loaded.

Documentation states "RPMsg is a message passing mechanism that requests resources through remoteproc and builds on top of the virtio framework. ". Hence, it seems more than a bit odd that RPMsg is present but RemoteProc isn’t.

Greetings @Sebtombs,

I did some digging and I noticed something about the HMP overlay for Colibri iMX8X. Notice the comment at the start of the overlay source file here: colibri-imx8x_hmp_overlay.dts « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

It explicitly states that it enables only RPMSG. Meanwhile the HMP overlay for the Verdin iMX8MP states that it enables both RPMSG and RemoteProc: verdin-imx8mp_hmp_overlay.dts « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

This may be a case of incorrect documentation on our part by listing the Colibri iMX8X HMP overlay in both articles, when really it’s only for RPMSG. I’ll check with our team internally if that is truly the case.

Best Regards,
Jeremias

Thanks Jeremias, the symptoms make perfect sense given what you have discovered. If it is the case it will be very nice if it is possible please to deploy a new overlay for Colibri which does allow RemoteProc.

I heard back from our team and seems my intuition here was correct. It’s a documentation mistake listing the 8X on the RemoteProc page and that overlay only works to enable rpmsg. I’ll see to it that this documentation mistake is fixed

How important is RemoteProc for your project? Is rpmsg not a suitable alternative for you?

The reason I ask is because our team said there were some difficulties with implementing RemoteProc on the 8X at the time. This is why we just opted to only implement rpmsg support on 8X. Now our team could revisit the topic, but there would be no guarantees on if or when RemoteProc support would be complete on 8X.

Best Regards,
Jeremias

Thanks Jeremias. My understanding is that with RemoteProc I can start and stop the M4 from Linux, but can’t do that using RPMsg. It would be preferable for our customer’s application to be able to do that but it is not mission-critical at present. Whilst one can load and start the M4 from U-Boot then we have a work-around for now.

I do foresee potential issues with update in the field so if there were a resolution in a time-frame of circa 6 months then that would be most useful thank you.

All the best,

Mark

I understand. Well we can put in a request and discuss with our development team about this. That said, still can’t give you any guarantees or timelines at this moment. If there’s an update or news we’ll try to inform you here.

Best Regards,
Jeremias