/dev/ttyRPMSG30 not created in Torizon OS 7 on Colibri iMX8QXP

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

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


Hello, and thank you for providing the output.

You are correct: your kernel command line shows clk-imx8qx.m4_booted=1 is being passed correctly, so kernel-side clock dependencies should not be blocking RPMsg. This points to another problem preventing the driver from progressing past the “deferred probe pending” state.

Here’s what you should check next:


1. Check M4 Firmware Output

  • You mentioned seeing rpmsg_lite starting remote link… on UARTB.
  • In a working setup, the M4 firmware should also print Link is up! and Nameservice announce sent.
  • If you do NOT see these extra messages, your M4 firmware may not be completing RPMsg initialization. (This is a common cause for the Linux rpmsg driver to keep deferring.)

Reference:


2. Verify Device Tree Status in Linux

  • Confirm your overlay is applied (already done, as shown in dmesg).
  • Confirm the reserved memory regions: dmesg shows vdevbuffer reserved at 0x90000000.
  • Do you see virtio_rpmsg_bus virtio0: rpmsg host is online in dmesg?
    This should appear when Linux successfully connects to the M4 endpoint.

3. Firmware Loaded and Running

  • When loading from U-Boot, make sure your M4 firmware is loaded to the correct address and is running before Linux boots.
  • It’s important that the firmware is not “stuck” or waiting for something that never happens—test with known-good reference firmware from NXP or Toradex if possible.
  • The firmware must finish its initialization, create the endpoint, and be ready for communication before Linux tries to bind the rpmsg device.

Reference:


4. Linux Driver Status

  • After running sudo modprobe imx_rpmsg_tty, check for new dmesg lines (dmesg | grep -i virtio).
  • Look for messages about virtio_rpmsg_bus. Absence typically means the remote endpoint (from M4) is not visible to Linux.

Summary & Next Steps

  • If you only see the M4 message rpmsg_lite starting remote link… and not “Link is up!” or “Nameservice announce sent.” then the M4 isn’t fully initializing the RPMsg link.
  • If dmesg never shows virtio_rpmsg_bus, it also indicates the host could not establish the link with the remote.
  • Please confirm:
    • The exact full output on UARTB from your M4 at boot.
    • The output of dmesg | grep -i virtio after modprobing imx_rpmsg_tty.

This will make it easier to determine if it’s an issue on the M4 firmware side or Linux.

Best regards,
Toradex AI Assistant.


Relevant links: