PROCESSOR-SDK-J722S: J722s, linux side can't open a mcu endpoint.

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. i want to build a ipc channel between mcu00 and linux.  

    3. in linux side, i write a simple code to send/recv  data from mcu00,   but failed.  i meet  error "_rpmsg_char_find_ctrldev: rpmsg directory doesn't exist under virtio3.rpmsg_mcu00_rx.-1.42"  ,when call 

 rpmsg_char_open(p->id, p->pDevName, p->localEndpt, p->remoteEndpt, p->pEptName, flags);
    4. 

# linux code

    stIpcNodeParam ipcNodesLut[] = {
    {R5F_MCU0_0,  14, (char*)"rpmsg_chrdev", 1030, (char *)"rpmsg_chrdev"},
    {R5F_WKUP0_0, 42, (char*)"rpmsg_mcu00_rx", 1030, (char *)"rpmsg_mcu00_rx"},
};

    
    
    ret = rpmsg_char_init(NULL);
    printf("rpmsg_char_init  %d\n", ret);
    
    for (size_t i = 0; i < ARRAY_SZ(ipcNodesLut); i++) {
        stIpcNodeParam* p = &ipcNodesLut[i];
        pDev[i] = rpmsg_char_open(p->id, p->pDevName, p->localEndpt, p->remoteEndpt, p->pEptName, flags);
    }
 

log :

rpmsg_char_init 0
create an endpoint device 0, 0x296686d8, 3
_rpmsg_char_find_ctrldev: rpmsg directory doesn't exist under virtio3.rpmsg_mcu00_rx.-1.42

in /sys/bus/rpmsg/devices   it seem missing some file( file: driver, rpmsg?) compare to mcu10.

root@j722s-evm:/opt/edgeai-gst-apps# ll /sys/bus/rpmsg/devices/virtio3.rpmsg_mcu00_rx.-1.42/
total 0
drwxr-xr-x 3 root root 0 Aug 19 09:05 .
drwxr-xr-x 6 root root 0 Aug 19 08:59 ..
-r--r--r-- 1 root root 4.0K Aug 19 09:05 announce
-rw-r--r-- 1 root root 4.0K Aug 19 09:05 driver_override
-r--r--r-- 1 root root 4.0K Aug 19 09:05 dst
-r--r--r-- 1 root root 4.0K Aug 19 09:05 modalias
-r--r--r-- 1 root root 4.0K Aug 19 09:05 name
drwxr-xr-x 2 root root 0 Aug 19 09:05 power
-r--r--r-- 1 root root 4.0K Aug 19 09:05 src
lrwxrwxrwx 1 root root 0 Aug 19 09:05 subsystem -> ../../../../../../../../../../../bus/rpmsg
-rw-r--r-- 1 root root 4.0K Aug 19 09:05 uevent
root@j722s-evm:/opt/edgeai-gst-apps#

# in mcu00, ipc just annouce to a53, ----------------------------------------------------

#define IPC_MCU00_ENDPT_RX (42U)  
#define IPC_RPMESSAGE_SERVICE_MCU00_RX "rpmsg_mcu00_rx"

```

    RPMessage_CreateParams_init(&createParams);

    createParams.localEndPt = IPC_MCU00_ENDPT_RX;
    ret = RPMessage_construct(&myIpcRecvMsgObject, &createParams);
    DebugP_log("rpmsg construct endpoint ret: %d\r\n", ret);

    // for linux, need annouce.
    ret = RPMessage_announce(CSL_CORE_ID_A53SS0_0, IPC_MCU00_ENDPT_RX, IPC_RPMESSAGE_SERVICE_MCU00_RX);
   
    log:   all return successful
Starting Sciserver..... PASSED
ipc task wait linux ready...
rpmsg construct endpoint ret: 0
rpmsg announce endpoint ret: 0
ipc send: 0,0, 0
ipc create tx test task 0
rpmsg endpoint 42 start rx task...

```


my question is:
1.  how to solve this problem.  

thanks

  • append, 

       for  rpmsg_char_open() API, how to understand  "dev_name" and "eptdev_name" and difference?    only "rpmsg_chrdev"  is allowed?   how to get valid parameters?  thanks.

  • Hello,

    Can you please run the command "ls -l /lib/firmware " and share me the logs ?

    What firmware are your running on MCU R5F core ?

    Regards

    Tarun Mukesh

  • Hi, 

      we just buid  application based on  mcu_plus_sdk/example demo code,  firmware name no changed , or not boot.

    root@j722s-evm:/opt/edgeai-gst-apps# ll /lib/firmware/
    total 29M
    drwxrwxrwx  7 root root 4.0K Aug  5 09:28 .
    drwxrwxrwx 84 root root  68K Jul 24 07:02 ..
    -rwxrwxrwx  1 root root 2.0K Mar  9  2018 LICENCE.ibt_firmware
    -rwxrwxrwx  1 root root 2.0K Mar  9  2018 LICENCE.iwlwifi_firmware
    -rwxrwxrwx  1 root root 480K Mar  9  2018 bl32.bin
    -rwxrwxrwx  1 root root 4.4M Mar  9  2018 bl32.elf
    drwxrwxrwx  2 root root 4.0K Mar  9  2018 cnm
    drwxrwxrwx  2 root root 4.0K Mar  9  2018 intel
    -rwxrwxrwx  1 root root 897K Mar  9  2018 iwlwifi-3160-17.ucode
    -rwxrwxrwx  1 root root 2.4M Mar  9  2018 iwlwifi-8000C-34.ucode
    -rwxrwxrwx  1 root root 2.4M Mar  9  2018 iwlwifi-8000C-36.ucode
    -rwxrwxrwx  1 root root 2.4M Mar  9  2018 iwlwifi-8265-34.ucode
    -rwxrwxrwx  1 root root 2.4M Mar  9  2018 iwlwifi-8265-36.ucode
    -rwxrwxrwx  1 root root 2.6M Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-34.ucode
    -rwxrwxrwx  1 root root 2.5M Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-38.ucode
    -rwxrwxrwx  1 root root 1.5M Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-46.ucode
    lrwxrwxrwx  1 root root   62 Mar  9  2018 j722s-c71_0-fw -> /usr/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_c7x_1.out
    lrwxrwxrwx  1 root root   69 Mar  9  2018 j722s-c71_0-fw-sec -> /usr/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_c7x_1.out.signed
    lrwxrwxrwx  1 root root   62 Mar  9  2018 j722s-c71_1-fw -> /usr/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_c7x_2.out
    lrwxrwxrwx  1 root root   69 Mar  9  2018 j722s-c71_1-fw-sec -> /usr/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_c7x_2.out.signed
    lrwxrwxrwx  1 root root   45 Jul 23 13:14 j722s-main-r5f0_0-fw -> vision_apps_eaik/vx_app_rtos_linux_mcu2_0.out
    lrwxrwxrwx  1 root root   52 Jul 23 13:14 j722s-main-r5f0_0-fw-sec -> vision_apps_eaik/vx_app_rtos_linux_mcu2_0.out.signed
    -rw-r--r--  1 root root 963K Aug 20 11:41 j722s-mcu-r5f0_0-fw
    -rwxrwxrwx  1 root root 5.9K Mar  9  2018 regulatory.db
    -rwxrwxrwx  1 root root 1.1K Mar  9  2018 regulatory.db.p7s
    -rwxrwxrwx  1 root root 144K Mar  9  2018 rgx.fw.36.53.104.796
    -rwxrwxrwx  1 root root 269K Mar  9  2018 rgx.sh.36.53.104.796
    -rwxrwxrwx  1 root root   28 Mar  9  2018 tee-header_v2.bin
    -rwxrwxrwx  1 root root    0 Mar  9  2018 tee-pageable_v2.bin
    -rwxrwxrwx  1 root root 480K Mar  9  2018 tee-pager_v2.bin
    -rwxrwxrwx  1 root root 480K Mar  9  2018 tee-raw.bin
    -rwxrwxrwx  1 root root 480K Mar  9  2018 tee.bin
    -rwxrwxrwx  1 root root 4.4M Mar  9  2018 tee.elf
    drwxrwxrwx  2 root root 4.0K Mar  9  2018 ti-connectivity
    drwxrwxrwx  3 root root 4.0K Mar  9  2018 ti-ipc
    drwxrwxrwx  2 root root 4.0K Aug 21 01:26 vision_apps_eaik
    lrwxrwxrwx  1 root root   46 Mar  9  2018 wave521c_k3_codec_fw.bin -> /usr/lib/firmware/cnm/wave521c_k3_codec_fw.bin
    

    linux log is:

    _rpmsg_char_find_ctrldev: rpmsg directory doesn't exist under virtio3.rpmsg_mcu00_rx.-1.42

  • Hello,

    But this is not linked to any executable ? what firmware are you linking to MCUR5F core ?

    "-rw-r--r--  1 root root 963K Aug 20 11:41 j722s-mcu-r5f0_0-fw "

    linux log is:

    _rpmsg_char_find_ctrldev: rpmsg directory doesn't exist under virtio3.rpmsg_mcu00_rx.-1.42

    Since you don't have any firmware linked to this core this is expected.

    Regards

    Tarun Mukesh