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.

TDA4VM: TDA4 sdk7.3 ipc

Part Number: TDA4VM


hi expert

The messaging API is different for Linux vs. other OSes and is provided through the rpmsg_char driver. All other OSes communicating via IPC LLD use the RPMessage API for communication.

1. in QNX use RPMessage driverd ipc?What's the relationship of rpmsg_char and RPMessage ?Which one is more efficient

2. Is there any other differences between Linux and Qnx for IPC operation? Can you provide relevant difference documents?

  • Hi Yao,

    1. Yes, QNX IPC ResMgr does build on top of PDK IPC LLD, so it uses the same RPMessage API. The Linux stack is very different owing to userspace and kernel split and the bus infrastructure, and the userspace interface is provided through the ti-rpmsg-char library that uses the rpmsg_char driver underneath. RPMessage API is the counter-part API to use in RTOS firmwares. QNX can reuse as it is a micro-kernel and relies on IPC resmgr.

    2. Linux uses upstreamed remoteproc and rpmsg frameworks, so the firmwares require the use of ".resource_table" to establish the bus infrastructure. The IPC vrings and setup is also different between Linux and QNX. The shared memory allocation interfaces for large data buffers is also different owing to different drivers (dma-buf-heaps on Linux and sharedmemallocator on QNX). This is seemless and transparent if you are using the Vision Apps API.

    There is no direct documentation that is comparing Linux vs QNX, you would have to look through the corresponding SDK documentations for each.

    regards

    Suman