Verdin imx95 - HMP Overlay - Enable RPMSG & RemoteProc

Hi all,

we would like to test the inter processor communication via RPMsg, but were not able to find a fitting overlay. Apparently there is one for the verdin im8mp (see https://git.toradex.com/device-tree-overlays.git/tree/overlays/verdin-imx8mp_hmp_overlay.dts?h=toradex_6.6-2.2.x-imx ).
What parts need to be adapted to make it work for the verdin imx95?
Is there an equivalent to
fw_setenv tdxargs "clk-imx8mp.mcore_booted=1"
for verdin imx95?

And where can we learn more about the handling of shared memory, is the documentation for the verdin imx95 publicly available and complete?

Current hardware is the Dahlia Carrier Board + Verdin iMX95
tdx-info:

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.6.119-7.5.0-ge5c5595adb06 #1-Torizon SMP PREEMPT Mon Jan  5 09:23:13 UTC 2026
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.0/torizon/15754bd5f3f74235fd6bd7d419c335c9c64d27eebf9ee4987faf6d9e0690219f/0
Distro name:              NAME="Torizon OS"
Distro version:           VERSION_ID=7.5.0-build.30
Distro variant:           VARIANT="Docker"
Hostname:                 verdin-imx95-12594537
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin iMX95 WB on Verdin Development Board
Toradex version:          0089 V1.0B
Serial number:            12594537
Processor arch:           aarch64
------------------------------------------------------------

Module/Silicon Revision 	Scarthgap (BSP 7) 	Further major releases
V1.0A - A1 	:white_check_mark: Supported Up to 7.4.0(1) 	:cross_mark: Not supported(1)
V1.0B - B0 	:white_check_mark: Supported Starting from 7.5.0(1) 	:white_check_mark: Supported(1)



Device tree
------------------------------------------------------------
Device tree enabled:      imx95-verdin-wifi-dev.dtb
Compatible string:        toradex,verdin-imx95-wifi-devtoradex,verdin-imx95-wifitoradex,verdin-imx95fsl,imx95
Device trees available:
                          imx95-verdin-nonwifi-dahlia.dtb
                          imx95-verdin-nonwifi-dev.dtb
                          imx95-verdin-nonwifi-ivy.dtb
                          imx95-verdin-nonwifi-mallow.dtb
                          imx95-verdin-nonwifi-yavia.dtb
                          imx95-verdin-wifi-dahlia.dtb
                          imx95-verdin-wifi-dev.dtb
                          imx95-verdin-wifi-ivy.dtb
                          imx95-verdin-wifi-mallow.dtb
                          imx95-verdin-wifi-yavia.dtb
------------------------------------------------------------

Device tree overlays
------------------------------------------------------------
Overlays enabled:         fdt_overlays=verdin-imx95_dsi-to-hdmi_overlay.dtbo verdin-imx95_spidev_overlay.dtbo
Overlays available:
                          verdin-imx95_dsi-to-hdmi_overlay.dtbo
                          verdin-imx95_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo
                          verdin-imx95_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo
                          verdin-imx95_mezzanine_panel-lvds-dual-channel-1080p_overlay.dtbo
                          verdin-imx95_nau8822-btl_overlay.dtbo
                          verdin-imx95_ov5640-27mhz_overlay.dtbo
                          verdin-imx95_ov5640_overlay.dtbo
                          verdin-imx95_panel-cap-touch-10inch-dsi_overlay.dtbo
                          verdin-imx95_panel-cap-touch-10inch-lvds_overlay.dtbo
                          verdin-imx95_panel-cap-touch-7inch-dsi_overlay.dtbo
                          verdin-imx95_spidev_overlay.dtbo
------------------------------------------------------------

Thanks in advance!

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on the available information, I need to clarify that Verdin iMX95 HMP overlays are not currently available in the documented sources.

Current HMP Overlay Status

According to the HMP documentation, the device tree overlay status for Verdin iMX95 shows(1)(2):

Available overlays:

  • verdin-imx8mp_hmp_overlay.dts (Available)
  • verdin-imx8mm_hmp_overlay.dts (Available)
  • verdin-am62_uart4-mcu_overlay.dts (Available)
  • verdin-am62p_uart4-mcu_overlay.dts (Available)

Not yet available:

  • verdin-imx95_hmp_overlay.dts - Not listed in current documentation

Understanding the iMX8MP Implementation

For reference, the Verdin iMX8MP requires specific kernel command line arguments for RemoteProc functionality(1):

fw_setenv tdxargs "clk-imx8mp.mcore_booted=1"

However, there is no documented equivalent for Verdin iMX95 in the current sources.

RPMsg Framework Overview

RPMsg (Remote Processor Messaging) enables communication between processors in heterogeneous multi-core environments(2). The framework requires:

  1. Device tree overlay to allocate correct RAM buffers(2)
  2. RemoteProc framework for managing remote processor devices(1)
  3. Shared memory configuration with proper memory addresses(2)

For iMX8MP, shared memory uses base address 0xb8000000(2), but iMX95 specifications are not documented in the available sources.

Recommendation

Since Verdin iMX95 HMP overlays and documentation are not currently available in the public documentation, I recommend checking the Toradex Community for any ongoing discussions about iMX95 HMP support, or consider that this functionality may still be under development for the iMX95 platform.

The sources indicate that overlays marked as “coming soon” require direct contact with Toradex for availability updates(1)(2).

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hi @frdm_eve!

For the Verdin iMX95, the modifications required to get the RPMsg working are done directly in the device tree, as shown here.

We don’t have specific documentation on shared memory for the Verdin iMX95, but we are currently improving our HMP documentation.

If you want more information on shared memory, I recommend checking the i.MX95 SoC reference manual directly from NXP, which describes the available memory regions in detail.

Best regards.

Hi @lucas_az.tx !

In the same way as you suggested, the RPMsg setup is already done in the device tree, visible at …/reserved-memory/
What is missing is the remoteproc1, with dmesg logging
platform remoteproc-cm7: deferred probe pending

It’s the same problem as mentioned here. Where is the “full Cortex‑M7 support for i.MX95” implemented? Which files shall be watched in the repository, to know when it’s ready?

Best regards.

Hi @plainCode!

I forgot to change the branch in the link I sent earlier, sorry for that. This is the correct device tree used for Verdin iMX95.

That said, I’m not sure if I fully understand your question. By running ls /sys/class/remoteproc, you can verify that the RemoteProc is available. It looks for a specific firmware name (which can be modified) in the /lib/firmware directory (which can also be changed). You can also verify this behavior using dmesg | grep remoteproc.

With that in mind, you need to compile a firmware using the MCUXpresso SDK and load it onto the Verdin iMX95. After that, you can start the alternative core through RemoteProc. The thread you shared has a step-by-step explanation for loading the compiled firmware.

If I misunderstood anything, please feel free to clarify or ask any questions.

Best regards.

Hi @lucas_az.tx !

To better explain my question, remoteproc in general is available, right, but only remoteproc0 is active (M33), remoteproc1 (M7) is not active/visible. That’s why I’m not able to start a firmware on the M7. remoteproc0 is read-only, makes sense, the M33 on the iMX95 is not intended for user firmware execution. As Toradex wrote here, you are working on it. My question remains, where in the OS will it be implemented, how can I found out, that it is now supported? Thanks for your help.

Best regards.

Hi @plainCode!

I tested it with a V1.0B, and there are two devices with RemoteProc available:

root@verdin-imx95-12594300:~# head /sys/class/remoteproc/remoteproc*/name
==> /sys/class/remoteproc/remoteproc0/name <==
neutron-rproc

==> /sys/class/remoteproc/remoteproc1/name <==
imx-rproc

It is possible that the RemoteProc on the M7 core is not available in i.MX95 SoCs with the old silicon revision.

Could you please confirm which Verdin iMX95 version you are using?

Best regards.