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: [tda4vl] facing IPC init issues while integrating vision app TIDL code to custom frame work

Part Number: TDA4VM
Other Parts Discussed in Thread: TDA4VL, TDA2, SYSBIOS

part number :J721S2_SW

Reference:     vision_app

EVM _ TDA4VL

A72 os -- Linux

C7x -- FreeRtos

I am trying to integrate the TIDL code to our frame work , just to ensure all libs related to TIDL are working fine with our basic frame work, but while running the code I am getting an error like below after the rpmsg_char_init(NULL) call.

_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpmsg_chrdev.-1.13
_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio1.rpmsg_chrdev.-1.13

then  TX channels for CPU creation for c7x_1 and c7x_2 are failing. 

I would like to know what is this error happening while calling rpmsg_char_init() and why its happening.

Regards,

Remesh

  • Hi any update on this ?

    Regards,

    Remesh

  • Hi Remesh,

    It appears that your firmwares are not running properly. Please check the output of the following command on the target, and ensure that the rpmsg_chrdev device with the appropriate end-point is published to the Linux-side from your firmware. Each of the published rpmsg_chrdev device will have probed the rpmsg_char driver and should have created a rpmsg_ctrl device.  

    $ ls -l /sys/bus/rpmsg/devices

    $ ls -l /sys/class/rpmsg

    regards

    Suman

  • Hi Suman,

    please find the output of those commands

    oot@j721s2-evm:/# ls -l /sys/bus/rpmsg/devices
    total 0
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio0.rpmsg_chrdev.-1.10 -> ../../../devices/platform/bus@100000/64800000.dsp/remoteproc/remoteproc0/remoteproc0#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.10
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio0.rpmsg_chrdev.-1.20 -> ../../../devices/platform/bus@100000/64800000.dsp/remoteproc/remoteproc0/remoteproc0#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.20
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio1.rpmsg_chrdev.-1.10 -> ../../../devices/platform/bus@100000/65800000.dsp/remoteproc/remoteproc2/remoteproc2#vdev0buffer/virtio1/virtio1.rpmsg_chrdev.-1.10
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio1.rpmsg_chrdev.-1.20 -> ../../../devices/platform/bus@100000/65800000.dsp/remoteproc/remoteproc2/remoteproc2#vdev0buffer/virtio1/virtio1.rpmsg_chrdev.-1.20
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio2.rpmsg_chrdev.-1.14 -> ../../../devices/platform/bus@100000/bus@100000:bus@28380000/bus@100000:bus@28380000:r5fss@41000000/41000000.r5f/remoteproc/remoteproc1/remoteproc1#vdev0buffer/virtio2/virtio2.rpmsg_chrdev.-1.14
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio2.ti.ipc4.ping-pong.-1.13 -> ../../../devices/platform/bus@100000/bus@100000:bus@28380000/bus@100000:bus@28380000:r5fss@41000000/41000000.r5f/remoteproc/remoteproc1/remoteproc1#vdev0buffer/virtio2/virtio2.ti.ipc4.ping-pong.-1.13
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio3.rpmsg_chrdev.-1.10 -> ../../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5c00000.r5f/remoteproc/remoteproc3/remoteproc3#vdev0buffer/virtio3/virtio3.rpmsg_chrdev.-1.10
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio3.rpmsg_chrdev.-1.20 -> ../../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5c00000.r5f/remoteproc/remoteproc3/remoteproc3#vdev0buffer/virtio3/virtio3.rpmsg_chrdev.-1.20
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio4.rpmsg_chrdev.-1.10 -> ../../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d00000.r5f/remoteproc/remoteproc4/remoteproc4#vdev0buffer/virtio4/virtio4.rpmsg_chrdev.-1.10
    lrwxrwxrwx 1 root root 0 Aug 30 12:50 virtio4.rpmsg_chrdev.-1.20 -> ../../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d00000.r5f/remoteproc/remoteproc4/remoteproc4#vdev0buffer/virtio4/virtio4.rpmsg_chrdev.-1.20
    root@j721s2-evm:/#

    root@j721s2-evm:/# ls -l /sys/class/rpmsg
    total 0
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl0 -> ../../devices/platform/bus@100000/64800000.dsp/remoteproc/remoteproc0/remoteproc0#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.20/rpmsg/rpmsg_ctrl0
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl1 -> ../../devices/platform/bus@100000/64800000.dsp/remoteproc/remoteproc0/remoteproc0#vdev0buffer/virtio0/virtio0.rpmsg_chrdev.-1.10/rpmsg/rpmsg_ctrl1
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl2 -> ../../devices/platform/bus@100000/65800000.dsp/remoteproc/remoteproc2/remoteproc2#vdev0buffer/virtio1/virtio1.rpmsg_chrdev.-1.20/rpmsg/rpmsg_ctrl2
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl3 -> ../../devices/platform/bus@100000/65800000.dsp/remoteproc/remoteproc2/remoteproc2#vdev0buffer/virtio1/virtio1.rpmsg_chrdev.-1.10/rpmsg/rpmsg_ctrl3
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl4 -> ../../devices/platform/bus@100000/bus@100000:bus@28380000/bus@100000:bus@28380000:r5fss@41000000/41000000.r5f/remoteproc/remoteproc1/remoteproc1#vdev0buffer/virtio2/virtio2.rpmsg_chrdev.-1.14/rpmsg/rpmsg_ctrl4
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl5 -> ../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5c00000.r5f/remoteproc/remoteproc3/remoteproc3#vdev0buffer/virtio3/virtio3.rpmsg_chrdev.-1.20/rpmsg/rpmsg_ctrl5
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl6 -> ../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5c00000.r5f/remoteproc/remoteproc3/remoteproc3#vdev0buffer/virtio3/virtio3.rpmsg_chrdev.-1.10/rpmsg/rpmsg_ctrl6
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl7 -> ../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d00000.r5f/remoteproc/remoteproc4/remoteproc4#vdev0buffer/virtio4/virtio4.rpmsg_chrdev.-1.20/rpmsg/rpmsg_ctrl7
    lrwxrwxrwx 1 root root 0 Aug 30 12:54 rpmsg_ctrl8 -> ../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d00000.r5f/remoteproc/remoteproc4/remoteproc4#vdev0buffer/virtio4/virtio4.rpmsg_chrdev.-1.10/rpmsg/rpmsg_ctrl8
    root@j721s2-evm:/#

    I am using rpmsg_char_init(NULL); from the application (like in the example), but how it will get the soc name/ family name while executing this api ?

    Regards,

    Remesh

     

  • Hi Suman,

    could you please guide me to resolve this issue, I am blocked now.

    Regards,

    Remesh

  • Hi Remesh,

    _rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpmsg_chrdev.-1.13
    _rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio1.rpmsg_chrdev.-1.13

    These traces are not from the rpmsg_char_init() call, but they are from the rpmsg_char_open() call instead. You are trying to open the rpmsg_chrdev at endpoint #13 for each of the C7x cores.

    I do not see the rpmsg devices published at endpoint 13 from your C7x firmwares. I see 2 devices at endpoints 10 and 20. Either you are missing publishing a device at end-point 13, or you are trying to open the wrong device/not passing in the correct arguments to rpmsg_char_open(). Please see git.ti.com/gitweb

    I am using rpmsg_char_init(NULL); from the application (like in the example), but how it will get the soc name/ family name while executing this api ?

    The API relies on kernel sysfs to look-up the SoC and configure itself. Please look through the source code of the ti-rpmsg-char library for details.

    https://git.ti.com/gitweb?p=rpmsg/ti-rpmsg-char.git;a=blob;f=src/soc.c;h=b9bb70be44592781f0d9a42feaea0000177323c9;hb=refs/heads/master#l162

    regards

    Suman

  • Hi Suman,

    Thanks for the detailed reply , up to now I worked with TDA2 series and sysbios , so some of the terms I am not getting properly . Like

    "rpmsg devices published at endpoint 13 from your C7x firmwares. I see 2 devices at endpoints 10 and 20. Either you are missing publishing a device at end-point 13" --> hope this "C7x firmwares" is the application in C7x  and how to check / where to check in code are we publishing the device at respective end points , could you please show me the line in the sample code  ? My code is similar to the example "ti-processor-sdk-rtos-j721s2-evm-08_04_00_06\vision_apps\apps\dl_demos\app_tidl" here and there few changes are there. when I compiled and loaded this example its working , but when I copied most the thing from this example and made my own project its not working . I am not able to understand what exactly I missed.

    regards,

    Remesh