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: IPC initialization errors

Part Number: TDA4VM
Other Parts Discussed in Thread: SYSBIOS

After upgrading to PSDKRA 6.02 and PSDKLA 6.02, I am able to boot into the linux shell and run the vision app initialization script, but when I attempt to run a vision app I get the following IPC errors:

APP: Init ... !!!
APP_LOG: Mapping 0xac000000 ...
APP_LOG: Mapped 0xac000000 -> 0xffffb3640000 of size 262144 bytes
MEM: Init ION ... !!!
MEM: Initialized ION (fd=4) !!!
MEM: Init ION ... Done !!!
IPC: Init ... !!!
APP_LOG: Mapping 0xac040000 ...
APP_LOG: Mapped 0xac040000 -> 0xffffb16a0000 of size 33161216 bytes
APP_LOG: Mapping 0x30e00000 ...
APP_LOG: Mapped 0x30e00000 -> 0xffffb3b30000 of size 3072 bytes
rproc_device_find_for_name: could not open virtio node directory for r5f-main-0-core-1
IPC: ERROR: Unable to find rproc_device for rproc CPU [r5f-main-0-core-1]
IPC: ERROR: Unable to create TX channels for CPU [mcu2_1] !!!
IPC: ERROR: All local endpoints MUST be the same value, mismatch for CPU [mcu2_1] local endpt -1 != excpected local endpt 1024 !!!
IPC: Init ... Done !!!
APP: ERROR: IPC init failed !!!
REMOTE_SERVICE: Init ... !!!
rproc_device_find_for_name: could not open virtio node directory for r5f-main-0-core-1
IPC: ERROR: Unable to find rproc_device for rproc CPU [r5f-main-0-core-1]
rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-0] @ remote endpt 21
rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-1] @ remote endpt 21
rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c7x] @ remote endpt 21
REMOTE_SERVICE: Init ... Done !!!
APP: Init ... Done !!!

I tried doing a fresh install of both the PSDKRA and PSDKLA in attempt to solve this error but I have not had any luck so far, any advice on how to resolve these errors would be appreciated.

  • Hi Jeff,

    Could you confirm that you have done every step under Run Instructions in the user guide? Especially, make linux_fs_install_sd.

    http://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/vision_apps/docs/user_guide/RUN_INSTRUCTIONS.html

    It appears the executables were not copied to SD card from the error log.

    Regards,

    Stanley

  • Stanley,

    I believe that I have correctly followed the build and run instructions. During make linux_fs_install_sd, the copy mcu2_1 remote firmware step appears to succeed, as well as everything else.

    Below is the output of vx_app_linux_arm_ipc.out incase that provides any other insight

    ./vx_app_linux_arm_ipc.out
    APP: Init ... !!!
    APP_LOG: Mapping 0xac000000 ...
    APP_LOG: Mapped 0xac000000 -> 0xffff91ac0000 of size 262144 bytes
    MEM: Init ION ... !!!
    MEM: Initialized ION (fd=4) !!!
    MEM: Init ION ... Done !!!
    IPC: Init ... !!!
    APP_LOG: Mapping 0xac040000 ...
    APP_LOG: Mapped 0xac040000 -> 0xffff8fb20000 of size 33161216 bytes
    APP_LOG: Mapping 0x30e00000 ...
    APP_LOG: Mapped 0x30e00000 -> 0xffff91fb0000 of size 3072 bytes
    rproc_device_find_for_name: could not open virtio node directory for r5f-main-0-core-1
    IPC: ERROR: Unable to find rproc_device for rproc CPU [r5f-main-0-core-1]
    IPC: ERROR: Unable to create TX channels for CPU [mcu2_1] !!!
    IPC: ERROR: All local endpoints MUST be the same value, mismatch for CPU [mcu2_1] local endpt -1 != excpected local endpt 1025 !!!
    IPC: Init ... Done !!!
    APP: ERROR: IPC init failed !!!
    REMOTE_SERVICE: Init ... !!!
    rproc_device_find_for_name: could not open virtio node directory for r5f-main-0-core-1
    IPC: ERROR: Unable to find rproc_device for rproc CPU [r5f-main-0-core-1]
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-0] @ remote endpt 21
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-1] @ remote endpt 21
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c7x] @ remote endpt 21
    REMOTE_SERVICE: Init ... Done !!!
    APP: Init ... Done !!!
    0.000318 s: VX_ZONE_INIT:Enabled
    0.000334 s: VX_ZONE_ERROR:Enabled
    0.000339 s: VX_ZONE_WARNING:Enabled
    0.000891 s: VX_ZONE_INIT:[tivxInit:64] Initialization Done !!!
    0.001160 s: VX_ZONE_INIT:[tivxHostInit:44] Initialization Done for HOST !!!
    APP IPC TIOVX: ERROR: Send msg 1 to CPU [mcu2_1] failed !!!
    APP IPC TIOVX: Sent msg 1 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 2 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 3 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 4 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 5 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 6 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 7 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 8 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 9 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 10 to CPU [c6x_1]
    APP IPC TIOVX: Sent msg 1 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 2 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 3 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 4 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 5 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 6 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 7 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 8 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 9 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 10 to CPU [c6x_2]
    APP IPC TIOVX: Sent msg 1 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 2 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 3 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 4 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 5 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 6 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 7 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 8 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 9 to CPU [c7x_1]
    APP IPC TIOVX: Sent msg 10 to CPU [c7x_1]
    APP IPC TIOVX: Waiting for all messages to get echoed from remote core...
    APP IPC TIOVX: Waiting for all messages to get echoed ... Done.
    APP IPC TIOVX: Running remote service test ...
    0.403542 s: REMOTE_SERVICE_TEST: Running test for CPU mcu2_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> mcu2_1 (port 21) cmd = 0x00001234, prm_size = 4 bytes
    0.403557 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.403630 s: REMOTE_SERVICE_TEST: Running test @ 0xae000000 of 1024 bytes size for CPU mcu2_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> mcu2_1 (port 21) cmd = 0x00005678, prm_size = 4 bytes
    0.403843 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.403850 s: REMOTE_SERVICE_TEST: Running test for CPU c6x_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c6x_1 (port 21) cmd = 0x00001234, prm_size = 4 bytes
    0.403860 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.403882 s: REMOTE_SERVICE_TEST: Running test @ 0xae000000 of 1024 bytes size for CPU c6x_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c6x_1 (port 21) cmd = 0x00005678, prm_size = 4 bytes
    0.403941 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.403951 s: REMOTE_SERVICE_TEST: Running test for CPU c6x_2 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c6x_2 (port 21) cmd = 0x00001234, prm_size = 4 bytes
    0.403959 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.403975 s: REMOTE_SERVICE_TEST: Running test @ 0xae000000 of 1024 bytes size for CPU c6x_2 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c6x_2 (port 21) cmd = 0x00005678, prm_size = 4 bytes
    0.404032 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.404040 s: REMOTE_SERVICE_TEST: Running test for CPU c7x_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c7x_1 (port 21) cmd = 0x00001234, prm_size = 4 bytes
    0.404050 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    0.404065 s: REMOTE_SERVICE_TEST: Running test @ 0xae000000 of 1024 bytes size for CPU c7x_1 !!!
    REMOTE_SERVICE: TX: FAILED: mpu1_0 -> c7x_1 (port 21) cmd = 0x00005678, prm_size = 4 bytes
    0.404121 s: REMOTE_SERVICE_TEST: Test failed @ iteration 0 !!!
    APP IPC TIOVX: Running remote service test ... Done.
    0.404136 s: VX_ZONE_INIT:[tivxHostDeInit:49] De-Initialization Done for HOST !!!
    0.408439 s: VX_ZONE_INIT:[tivxDeInit:100] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    rproc_device_find_for_name: could not open virtio node directory for r5f-main-0-core-1
    IPC: ERROR: Unable to find rproc_device for rproc CPU [r5f-main-0-core-1]
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-0] @ remote endpt 21
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c66-1] @ remote endpt 21
    rproc_device_find_chrdev_by_remote_port: could not find a matching rpmsg_chrdev node
    IPC: ERROR: Unable to find rproc_char_device for rproc CPU [c7x] @ remote endpt 21
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    Segmentation fault (core dumped)

    Thanks,

    Jeff

    EDIT: after looking closer at the boot output I found this:

    ** File not found /lib/firmware/j7-mcu-r5f0_0-fw **

    however, the firmware shown being copied for mcu2_1 is shown as lib/firmware/j7-main-r5f0_1-fw and it does show up at that file location.

  • "/lib/firmware/j7-mcu-r5f0_0-fw" is needed for mcu2_0. Is it not being copied?

  • I do not believe that it is being copied, here is the output of the firmware copying:

    # remove old remote firmware files from filesystem
    mkdir -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware
    rm /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-*-fw -f
    # copy remote firmware files for mcu2_0
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/vision_apps/out/J7/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_0.out /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-main-r5f0_0-fw
    /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/ti-cgt-arm_18.12.1.LTS/bin/armstrip -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-main-r5f0_0-fw
    # copy remote firmware files for mcu2_1
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/vision_apps/out/J7/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_1.out /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-main-r5f0_1-fw
    /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/ti-cgt-arm_18.12.1.LTS/bin/armstrip -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-main-r5f0_1-fw
    # copy remote firmware files for c6x_1
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/vision_apps/out/J7/C66/SYSBIOS/release/vx_app_tirtos_linux_c6x_1.out /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c66_0-fw
    /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/ti-cgt-c6000_8.3.2/bin/strip6x -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c66_0-fw
    # copy remote firmware files for c6x_2
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/vision_apps/out/J7/C66/SYSBIOS/release/vx_app_tirtos_linux_c6x_2.out /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c66_1-fw
    /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/ti-cgt-c6000_8.3.2/bin/strip6x -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c66_1-fw
    # copy remote firmware files for c7x_1
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/vision_apps/out/J7/C71/SYSBIOS/release/vx_app_tirtos_linux_c7x_1.out /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c71_0-fw
    /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/ti-cgt-c7000_1.2.0.STS/bin/strip7x -p /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-c71_0-fw
    sync
    # copy vision apps binaries
    mkdir -p /media/j/rootfs/opt/vision_apps
    cp -r /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//opt/vision_apps /media/j/rootfs/opt/
    # copy remote core firmware's
    mkdir -p /media/j/rootfs/lib/firmware
    rm /media/j/rootfs/lib/firmware/j7-*-fw -f
    cp /ti/ccs930/ccs/eclipse/psdk_rtos_auto_j7_06_02_00_21/targetfs//lib/firmware/j7-*-fw /media/j/rootfs/lib/firmware/

    This is following a fresh make sdk_scrub and make sdk.

  • Can you do "make sdk_show_config" and share the log?

    It looks like BUILD_CPU_MCU1_0 and BUILD_CPU_MCU1_1 are not enabled in the build?

  • Output of make sdk_show_config:

    Build Skipped for kernels.stereo.target.bam.J7.LINUX.A72.release:vx_target_kernels_stereo_bam
    #
    ### Below make variables control how the SDK is built. Modify as required.
    #
    ### Build flags in vision_apps/vision_apps_build_flags.mak,
    # BUILD_CPU_MPU1=yes
    # BUILD_CPU_MCU2_0=yes
    # BUILD_CPU_MCU2_1=yes
    # BUILD_CPU_C6x_1=yes
    # BUILD_CPU_C6x_2=yes
    # BUILD_CPU_C7x_1=yes
    # BUILD_CPU_MCU1_0=no
    # BUILD_CPU_MCU1_1=no
    # BUILD_CPU_MCU3_0=no
    # BUILD_CPU_MCU3_1=no
    #
    # BUILD_APP_TIRTOS_FILEIO=no
    # BUILD_APP_TIRTOS_LINUX=yes
    #
    # BUILD_PDK_BOARD=j721e_evm
    #
    ### Build flags in tiovx/build_flags.mak,
    # PROFILE=all
    # BUILD_TARGET_MODE=yes
    # BUILD_EMULATION_MODE=no
    # BUILD_LINUX_A72=yes
    #
    # BUILD_CT_KHR=yes
    # BUILD_CT_TIOVX=yes
    # BUILD_CT_TIOVX_TEST_KERNELS=yes
    # BUILD_CT_TIOVX_IVISION=yes
    # BUILD_CT_TIOVX_TIDL=yes
    # BUILD_CT_TIOVX_HWA=yes
    # BUILD_CT_TIOVX_HWA_NEGATIVE_TESTS=yes
    #
    # BUILD_CONFORMANCE_TEST=yes
    # BUILD_TUTORIAL=yes
    # BUILD_BAM=no
    # BUILD_EMULATION_ARCH=x86_64

  • Could you also share the full log including the kernel boot?

  • Hi Jeff,

    I was able to reproduce the exact same error running vision apps on one of our EVMs.

    u-boot environment variables were modified on that EVM so rproc firmware loading was not working correctly in uboot.

    What I did to resolve the issue was the followings.

    - Power on the EVM.

    - Hit Any Key in terminal window to stop the autoboot sequence and enter uboot prompt.

    - In uboot prompt, run the below commands.

    => env default -a

    => saveenv

    - Reboot the board.

    - Vision apps can run without any error.

    Regards,
    Stanley

  • Stanley,

    This worked for me as well, thank you for your help.