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.

TDA4VEN-Q1: MCU-R5f communicates with Main-R5f and A72 via IPC simultaneously

Part Number: TDA4VEN-Q1


Tool/software:

Hi,TI expert

1.sdk version is mcu_plus_sdk_j722s_11_00_00_12

2.The running core is MCU-R5f

3.Can you provide a routine for mcu-r5f to communicate IPC with main-r5f and A72 simultaneously?

4.Also, is there a separate routine for mcu-r5f and A72 to communicate with IPC?

  • Hi,Tarun Mukesh

    4.Also, is there a separate routine for mcu-r5f and A72 to communicate with IPC?

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/latest/exports/docs/mcu_plus_sdk_j722s_11_00_00_12/docs/api_guide_j722s/EXAMPLES_DRIVERS_IPC_NOTIFY_ECHO.html

    4.1.We are now using tispl to start, and wake up r5f needs to communicate with A72 via IPC, as shown in the following link and diagram

    (1)J722S MCU+ SDK: Developing applications on Device Manager/Wake-up R5 core

    (2)diagram

    4.2.If mcu-r5f and A72 are also enabled for IPC communication at this time, how to set the red box parameters in the following figure?

    4.3.How to set up the A72 end at point 4.2

    5.The maximum RP Message Buffer Size for IPC communication between R5F is 128 bytes, as shown in the following figure, right?

    Regards

  • Hello,

    5.The maximum RP Message Buffer Size for IPC communication between R5F is 128 bytes, as shown in the following figure, right?

    You can use the below executable to build on MCU R5F and MAIN R5F cores then MCU R5F will communicate with MAIN R5F and also with linux if you run rpmsg_char_simple

    software-dl.ti.com/.../quote]

    In this example,

    • We create two RP Message end points
      • One end point to exchange messages with Linux kernel
      • One end point to exchange messages with Linux user space and other RTOS/NORTOS CPUs
    • All cores on startup after driver initialization first wait for Linux to be ready
    • Then they announce the end points on which they are waiting for messages to Linux.
    • This is needed to be done else Linux cannot initiate message exchange with RTOS/NORTOS CPUs.
    • Two tasks are then created which listen for incoming messages and echo it back to the sender. The sender can be Linux CPU or other RTOS/NORTOS CPUs.
    • Meanwhile Linux kernel and user space test applications initiate message exchange with RTOS/NORTOS CPUs and wait for the echoed message.
    • The example also shows a "main" RTOS/NORTOS CPU exchanging message with other RTOS/NORTOS CPUs by sending messages to the same end point as that where LInux sends messages.
    • This shows that all CPUs can exchange messages with each other, no matter which OS or RTOS or NORTOS is running on the sender or receiver CPUs.
    4.2.If mcu-r5f and A72 are also enabled for IPC communication at this time, how to set the red box parameters in the following figure?

    The values are for linux only , you need not change .On linux side you need to initiate user space application

    rpmsg_char_simple - r 0 -n 10

    The maximum RP Message Buffer Size for IPC communication between R5F is 128 bytes, as shown in the following figure, right?

    No. we have 512 bytes as maximum buffer size(496 data +16 header) and 256 buffers so we can accommodate 256*512 data.

    Regards

    Tarun Mukesh

    [/quote]
  • Hello,

    1 Due to the startup method of tispl, wake_up r5f also uses mcu_plus_stk_j722s_11_11_00_00_12/examples/drivers/ipc/ipc_rpmsg.echo_inux routine

    2. If we refer to the mcu_plus_stk_j722s_11_00_00_12/examples/drivers/ipc/ipc_rpmsg.echo_inux routine and we use the tispl startup method, due to development requirements, we need to use mcu_r5f as the initiator of the message, which would conflict with wake_up r5f, wouldn't it

    3.After consulting the project management information, it was learned that A53 defaults to the client (message initiator), while r5f is usually used as a server. Based on your experience, if you use MCU_r5f as the message initiator, is the software design more complex. If it's not necessary, don't use mcu_r5f as the message initiator, right?

    4. Are there any solutions to address the above issues?

    Addition, If it is the tispl startup mode, can the ipc_rpmsg.send_cessages() function in the IPC code (mcu_plus_stk_j722s_111_11_00_00_12/examples/drivers/ipc/ipc_rpmsg. echo_1ux routine) of wake_up r5f be blocked or changed to only establish IPC communication with A53

  • Hello,

    I will be out of office next 2 days .Please expect delay in response.

    Regards

    Tarun Mukesh

  • Hello,

    If you're busy, please help me forward it to your colleagues for a response. Thank you!

  • Hello,

    1 Due to the startup method of tispl, wake_up r5f also uses mcu_plus_stk_j722s_11_11_00_00_12/examples/drivers/ipc/ipc_rpmsg.echo_inux routine

    2. If we refer to the mcu_plus_stk_j722s_11_00_00_12/examples/drivers/ipc/ipc_rpmsg.echo_inux routine and we use the tispl startup method, due to development requirements, we need to use mcu_r5f as the initiator of the message, which would conflict with wake_up r5f, wouldn't it

    3.After consulting the project management information, it was learned that A53 defaults to the client (message initiator), while r5f is usually used as a server. Based on your experience, if you use MCU_r5f as the message initiator, is the software design more complex. If it's not necessary, don't use mcu_r5f as the message initiator, right?

    4. Are there any solutions to address the above issues?

    You can change the example application on WK R5F core to some other than ipc rpmsg echo linux.

    WK R5F is the DM core in J7AEN so it has to start first, but it need to be ipc rpmsg echo linux sample application, it can be other application but should contain sci server running on it.

    If A53 is running linux then A53 should initiate the message but not MCU R5F because of server - client model. A53 running linux always acts as server as per linux ipc driver and all other other cores are clients.

    There is no announce functionality in Linux IPC driver so we cannot get the A53 end point details on MCU R5F without Announcement. So a message has to be initiated from a53 to let other cores know its end point.

    Regards

    Tarun Mukesh