remoteproc: Load coprocessor code to the specific main memory location

Michal Simek monstr at monstr.eu
Fri Feb 17 07:21:48 EST 2012


2012/2/16 Ohad Ben-Cohen <ohad at wizery.com>

> On Thu, Feb 16, 2012 at 2:22 PM, Michal Simek <monstr at monstr.eu> wrote:
> > ok on that addresses above is mapped vring_desc structure. I expect that
> > addr is address to any memory location when data are places. Next is
> filled
> > by init because of ring buffer. What flags should be used? And what is
> data
> > structure?
>
> I'm sorry, but can you please rephrase this question too ? I'm just not
> sure I understand you correctly.
>
> In general, you don't need to fiddle with the vring_desc structure -
> that's internal to virtio, and things should just work.
>
> Or are you asking about the rtos side ?
>

yes, I mean that rtos side.

Communication from Linux should be pretty easy because I can use sendto
functions but
IRC in init part Linux kick rtos which send which services are
available.inany format which is unknown to me.

rtos should compose that data message and Linux will encode it and is able
to register that and use that.

My question is how that rtos should communicate. What data to send and
where and which structure to you.
For example: Use first vring buffer and write address where message is
placed and it is in ths structure (u32 flag, u32 address, u32 len,
u32data[MAX].

Two vrings buffers are setup as ring buffers and they are empty and from my
code reading rtos has to fill them.


Maybe I can say it in different way. In your ELCE example on panda board (I
will get it pretty shortly to be able to test it) ou get these messages

virtion_rpmsg_bus virtion0: rpmsg host is online - I get the same message
omap-rproc omap-rproc.1: received echo 0 - it is I think written in omap
remote proc driver

and then you get

virtion_rpmsg_bus virtio0: creating channel rpmsg-client-sample2...
virtion_rpmsg_bus virtio0: creating channel rpmsg-client-sample3...
...

Based on that when you have that channel name you can probe that driver
with match id table which has to use the same name to be able to
communication with this channel (name is rpmsg-client-sample).

I am not able to get that list of published services from rtos that's why
linux can't create that channels
and I would lke to know what to do on rtos side and how to send that
messages and which format I should
use.
Definitely rtos when this message is composed will kick Linux that there is
pending message.

Please also correct me if I read the code wrongly. that mailbox in omap
driver is used just to say which buffer contains that message. Is it
correct?
I can create 15 sw signals to tell rtos which buffer contains message.

Will be help if I clear my code and send it to you for review? Maybe you
will see where the problem is.

Thanks,
Michal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/devicetree-discuss/attachments/20120216/072ecbdf/attachment-0001.html>


More information about the devicetree-discuss mailing list