PROCESSOR-SDK-J722S: J722s, mcu10/wkup mcu can't receive ipc data from mcu20

Part Number: PROCESSOR-SDK-J722S

Tool/software:


Hi TI expert,
    1. i am using J722s evm  and sdk v11  example code as environment. sdcard, spl boot mode.

    2. my target is to send data from mcu20 to mcu10 using rpmsg api.

   3.  i refer to https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_00_00_21/exports/docs/api_guide_am64x/DRIVERS_IPC_RPMESSAGE_PAGE.html    to  create a demo code

   4. it works between mcu10 <-->  wkup mcu ,  but in mcu20, it cant send to mcu10.

    5. in mcu 10,  i make debug var that  confirm the ipc_notity is triggered,   which is in  "RPMessage_notifyCallback" 

        and in mcu20, send api  RPMessage_send() return 0, mean success, and after send 256 times, it return -2

here is my code:

in MCU20 main.c

```

    uint32_t REMOTE_COREID = CSL_CORE_ID_MCU_R5FSS0_0;
    uint32_t REMOTE_EPT = 44;

    RPMessage_CreateParams createParams;
    RPMessage_CreateParams_init(&createParams);
    createParams.localEndPt = 45;
    ret = RPMessage_construct(&ussIpcObj[0], &createParams);
    appLogPrintf("ipctx  create rpmsg: %d....\n", ret);

    for (size_t i = 0; i < sizeof(txBuf); i++) {
        txBuf[i] = 0x30 + i;
    }
   
    // ret = RPMessage_announce(CSL_CORE_ID_A53SS0_0, 32, "uss.tx");
    // appLogPrintf("ipctx  annouce: %d....\n", ret);
    while (1) {

        ret = RPMessage_send(txBuf, sizeof(txBuf), REMOTE_COREID, REMOTE_EPT, RPMessage_getLocalEndPt(&ussIpcObj[0]),
            1000);
        appLogPrintf("ipctx  running %d,  ep:%d\n", ret, RPMessage_getLocalEndPt(&ussIpcObj[0]));
       
        vTaskDelay(1000u);
}

```

[MCU2_0] 32.892974 s: ipctx running 0, ep:45
[MCU2_0] 33.893054 s: ipctx running 0, ep:45
[MCU2_0] 34.893134 s: ipctx running 0, ep:45
[MCU2_0] 35.893213 s: ipctx running 0, ep:45
[MCU2_0] 36.893294 s: ipctx running 0, ep:45

in MCU10 , modify from ipc rpmsg demo code.

```

    RPMessage_CreateParams_init(&createParams);
    createParams.localEndPt = 44;
    status = RPMessage_construct(&gIpcRecvMsgObject[2], &createParams);
    TaskP_Params_init(&taskParams);
    taskParams.name = "uss-rx";
    taskParams.stackSize = IPC_RPMESSAGE_TASK_STACK_SIZE;
    taskParams.stack = gIpcTaskStack[2];
    taskParams.priority = IPC_RPMESSAGE_TASK_PRI;
    /* we use the same task function for echo but pass the appropiate rpmsg handle to it, to echo messages */
    taskParams.args = &gIpcRecvMsgObject[2];
    taskParams.taskMain = ipc_uss_rx_task;

void ipc_uss_rx_task(void *args)
{
    int32_t status;
    uint8_t recvMsg[IPC_RPMESSAGE_MAX_MSG_SIZE+1] = {0}; /* +1 for NULL char in worst case */
    uint16_t recvMsgSize=0;

    RPMessage_Object *pRpmsgObj = NULL;

    pRpmsgObj = (RPMessage_Object *)args;



    DebugP_log("[IPC RPMSG ECHO] Remote Core waiting for messages at end pointss %d ... !!!\r\n",RPMessage_getLocalEndPt(pRpmsgObj)  );

    while (1) {
        /* set 'recvMsgSize' to size of recv buffer,
         * after return `recvMsgSize` contains actual size of valid data in recv buffer
         */

        gremoteCoreEndPt = -1;


        recvMsgSize = IPC_RPMESSAGE_MAX_MSG_SIZE;
        status = RPMessage_recv(pRpmsgObj,
            recvMsg, &recvMsgSize,
            &gremoteCoreId, &gremoteCoreEndPt,
            SystemP_WAIT_FOREVER);

        DebugP_log("mcu10 rxxx: %d - %d, %02X,%02X,%02X,%02X,%02X,%02X\r\n", status, recvMsgSize,
        recvMsg[0],recvMsg[1],recvMsg[2],recvMsg[3],recvMsg[4],recvMsg[5]);

    }

```

[IPC RPMSG ECHO] Version: REL.MCUSDK.09.00.00.16 (Aug 14 2025 18:30:52):
[IPC RPMSG ECHO] Remote Core waiting for messages at end pointss 14 ... !!!
[IPC RPMSG ECHO] Remote Core waiting for messages at end pointss 44 ... !!!  

#### no data received  forever #########


my question is:
1. how  to  send data from mcu20 to mcu10 using rpmsg api.

thanks