AnsweredAssumed Answered

rpmsg on i.MX6SoloX

Question asked by Rick Meyer on Dec 13, 2016
Latest reply on May 11, 2017 by Dusan Cervenka


     We are working with the

We are looking at using the rpmsg system to transfer data between the m4 processor and the application processor. I set up a basic benchmark using the rpmsg_tty example and have found the performance to be lower than expected from a memory-mapped sharing system, ~400KB/s.

I thought it might have to do with the buffer size between the processors and had some success changing them. I would like to continue down this path but I am unsure of where the values for the VRING bases were derived and how I can safely change them.

In arch/arm/mach-imx/imx_rpmsg.c line 292 there is a hard coded set of address:

/* hardcodes here now. */

rpdev->vring[0] = 0xBFFF0000;

rpdev->vring[1] = 0xBFFF8000;


How might I change these such that I can increase the total size of the vrings safely?
I have been looking a the i.MX 6SoloX Applications Processor Reference Manual and the memory range seems to fall outside the memory map, unless I am reading it wrong:

SSI2 - 0xB000 - 4KB
SSI3 - 0xC000 - 4KB


What am I missing?