RPMSG on Verdin IMX8MP - Linux Side Working, M7 Side Not

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello Andrew,

Thank you for your detailed description. What you’re seeing is a known issue on Torizon OS 7.x for the Verdin iMX8M Plus—the Cortex-M7 core outputs its initial message but can’t complete the RPMsg initialization, causing no further exchange over RPMsg.

Resolution Steps
To make RPMsg work properly on Torizon OS 7.x, you need to adjust the kernel arguments to prevent Linux from interfering with the M-core during boot. Specifically:

  1. Enable the HMP Device Tree Overlay
    Make sure the appropriate HMP (Heterogeneous Multi-Processing) device tree overlay is enabled. Reference: Device Tree Modifications for RPMsg.

  2. Add Required Kernel Command Line Arguments
    You must add the following kernel argument to your device’s boot configuration:

    firmware.class.path=/var/volatile
    

    This argument prevents Linux from rewriting or disturbing the Cortex-M firmware during boot, which resolves the RPMsg issue.

    How to add the kernel argument:

    • Edit /etc/default/grub (if using GRUB) or the kernel arguments via your preferred bootloader method.
    • Append firmware.class.path=/var/volatile to the GRUB_CMDLINE_LINUX or the relevant variable for your bootloader.
    • Update your bootloader configuration (for example, run update-grub after editing /etc/default/grub if you use GRUB).
    • Reboot the device.

You can see further discussion and confirmation of this workaround here: Known Issue and Kernel Argument Details.

Alternative Workarounds
If you wish not to adjust kernel arguments now, you can also temporarily use either:

Let me know if you’d like specific steps for either workaround or further explanation!

Best regards,
Toradex AI Assistant.