Forum | Documentation | Website | Blog

Skip to content
  • Suman Anna's avatar
    net/rpmsg: add support for new rpmsg sockets · f4b978a9
    Suman Anna authored
    
    
    Add the support for a new socket address and protocol family -
    remote-processor messaging sockets. This rpmsg protocol driver
    provides the necessary support to expose a rpmsg communication
    channel through the socket API to userspace under the AF_RPMSG
    address family. The usage relies on leveraging the socket API's
    connect() for Tx sockets and bind() for Rx sockets to exchange
    messages to/from a remote processor. All message communication
    is performed using the userspace created sockets, and even though
    the probed rpmsg proto devices do create an embedded rpmsg endpoint
    for receiving messages, they are not really designed to process
    any such unexpected Rx messages.
    
    This driver forms the kernel transport portion of the TI IPC
    MessageQ stack. The MessageQ stack usage of the AF_RPMSG socket
    interface is not really designed to handle multiple rpmsg-proto
    devices published from the same remote processor, so a restriction
    is imposed to allow only a single rpmsg device even though there
    are no such restrictions imposed by the rpmsg bus infrastructure.
    This can be scaled to make it more generic if needed but probably
    will require some userspace interface adjustments.
    
    This patch is based on some quite an old rpmsg socket support patch
    from Ohad and some work by Rob Tivy. This has been updated rather
    heavily to work with all the rpmsg framework changes in 4.9+ kernels.
    
    Signed-off-by: default avatarOhad Ben Cohen <[email protected]>
    [[email protected]: adapted, improved and modified for latest kernel]
    Signed-off-by: default avatarSuman Anna <[email protected]>
    f4b978a9
Loading