AnsweredAssumed Answered

rpmsg on i.MX6SoloX

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

Hello,

     We are working with the http://www2.keil.com/mdk5/ds-mdk/imx6sxsabrereference

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?

Outcomes