Hello,
I'm encountering an issue with the RPMsg-Lite communication between the Cortex-M33 and the Cortex-A55 on the i.MX93.
When the A55 enters suspend mode, any call to rpmsg_lite_alloc_tx_buffer() on the M33 side either blocks indefinitely or results in a hard fault, depending on the exact circumstances. The function rpmsg_lite_is_link_up() continues to return true, which prevents detecting this state cleanly.
The underlying issue appears to be that vq->vq_ring.avail remains mapped, but accessing vq->vq_ring.avail->idx triggers a fault or a hang. There seems to be no safe mechanism to detect that the A55 has suspended and that communication is no longer reliable.
This makes it difficult to ensure robustness on the M33 side. Ideally, we would like rpmsg_lite_alloc_tx_buffer() to either return an error or timeout safely without crashing or blocking indefinitely when the A55 is suspended.
Do you have any recommendation or workaround to safely handle this case, or is there an update planned to address this situation?
Best regards,
Patrice