Spaces:

arjun.a
range data
5aefcf4
raw
history blame
8.19 kB
Ticket Name: TDA4VM: [tda4vl] facing IPC init issues while integrating vision app TIDL code to custom frame work
Query Text:
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
Responses:
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, Remesh Neelamana said: _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 Remesh Neelamana said: 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