Sporadic issue with RPMSG on VF61

Dear @vix

I analyzed the rpmsg behavior in more detail in the recent days, so I meanwhile have a better insight int what’s happening. For example there are multiple buffers working together, and which are not perfectly adjusted to each other in size. However, I didn’t want to change too much now.
Here’s a (still somewhat simplified) view:

  • For the communication between the M4 and A5, there are 3 shared memory ranges used:
    • shared memory @ 0x3f060000 contains the actual message data (512 bytes each)
    • vring[0] and [1] are two linked lists of fixed size, each element containing basically a pointer to one message. (The lists are much longer than the number of buffers in the shared memory, which is basically a waste of space…)

You are correct: memory between 0x3f060000 and 0x3f064000[there was a typo in your comment above] is used by rpmsg library, and therefore not available for anything else. The space reserved is used for 32 buffers, 512 bytes each.
I will add this to the documentation.

The 1024 messages reported in the log output are about the local buffer inside the RpMsgLib - the library reads the messages from the M4 in an interrupt routine. Your application could read these 1024 messages long after they arrived.

Regards, Andy