Dear Community and TI support,
I am dealing with the RPMsg module an a TI SK-AM64 Evaluation Board.
I ported the ti-rpmsg-char example (Linux and freertos) with endpoint 14 (rpmsg_chrdev) into my own application(s) and it works fine.
Regarding the target application I would like to open 3 endpoints on the R5Fss0_0 to have three channels to exchange data with Linux.
Find the attached concept for further clarification. The for loop at the right hand side should only show the principle .. ;)
When the first endpoint is created and annouced to linux by R5F, the linux console prints following message, saying endpoint (channel) 14 is available:
[timestamp] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
The rpmsg device is created under /dev/rpmsg_ctrl0
. Also the following (corresponding) symlinks are created:
/sys/class/rpmsg/rpmsg_ctrl0 -> ../../devices/platform/bus@f4000/bus@f4000:r5fss@78000000/78000000.r5f/remoteproc/remoteproc1/remoteproc1#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.14/rpmsg/rpmsg_ctrl
and
sys/bus/rpmsg/devices/virtio0.rpmsg_chrdev.-1.14 -> ../../../devices/platform/bus@f4000/bus@f4000:r5fss@78000000/78000000.r5f/remoteproc/remoteproc1/remoteproc1#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.14
When the second RPMessage_announce
is executed no message is printed to the console saying a new channel is created.
I can announce the second Endpoint alone,when no other endpoint is announced before, but not as the second one.
Can anyone help me how to manage my problem?
Is it even possible to open 3 endpoints of the same kind from the same core (R5Fss0_0), all using the rpmsg-char driver?
How do I get more rpmsg devices, e.g. rpmsg_crtl1 and rpmsg_ctrl2?
Is the service Name "rpmsg_chrdev" fixed for all three endpoints?
As you may have noticed during reading not all definitions are clear to me, e.g. Channel, driver (ti-rpmsg-char), module (rpmsg_char)...
Can these definitions be matched to the created symlinks?
In this post Suman mentioned that the device need to be bound to the rpmsg-char driver.
How can I achieve this or is this normally done by the TI rpmsg api? DRA829V: rpmsg char driver has no /dev entry
In this Post Thao had a similar question (solution still missing): AM6442: IPC rpmsg: Create 2 devices or 2 endpoints
Many thanks for any advice and help!
Daniel