This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VH Linux uses RPMessage

Hi ti,

I am using sdk 8.5 on the vh board, after reading the RPMessage documentation and the demo given, and I have completed the RPMessage client on the MCU2_0, I want A72 to be used as the RPMessage server in the Linux environment, how can i do it?

Because the Linux demo only has rpmsg_char code

  • Hi Shuochong,

    The rpmsg-char library interface is the primary interface on the Linux-side, interacting with the rpmsg-char driver in kernel. 

    A rpmsg bus device is created on the Linux-side _only_ when  an end-point is created on the firmware-side is published to the Linux core using RPMessage_announce() API. This rpmsg device then probes the corresponding driver. As such, this Linux rpmsg bus model along with the rpmsg-char driver always makes the Linux-side look like the client.

    If you want a Linux-application to behave as a server, you will still need the firmware-side to publish a device first, and the application create its' local end-point based on that. You can then exchange this local end-point address back to the firmware-side's end-point, after which, you can get the Linux local end-point to behave as a server.

    So, this needs an initial message communication from Linux to RTOS publishing the local end-point address first, and then use the application as a server going forward.

    regards

    Suman

  • Hi Suman

    RPMessage_announce() API is mainly what it does, is it to reply to an ack like TCP

  • Hi Jas,

    RPMessage_announce() API is the one that announces an end-point to the Linux-side, and creates a rpmsg bus device, which then can probe an appropriate rpmsg bus client driver.

    It is not the TCP ack like behavior.

    regards

    Suman