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.

SK-AM62A-LP: TIDL strange IPC error

Part Number: SK-AM62A-LP

Hi,

I am trying to run a simple tidlrt demo on my new AM62a board, got this error:

root@am62axx-evm:/opt/am62a# [  136.723338] audit: type=1334 audit(1695896117.180:28): prog-id=18 op=UNLOAD
[  136.730332] audit: type=1334 audit(1695896117.180:29): prog-id=17 op=UNLOAD
./run_board_mt.sh 
====== deploy_tda4, commit hash: a4861b5
Model Files names : /opt/am62a/model-artifacts/mt/yolov8m_n_231025_am62a90_384x640_net.bin, /opt/am62a/model-artifacts/mt/yolov8m_n_231025_am62a90_384x640_io1.bin
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=5) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl[  163.071646] audit: type=1701 audit(1695896143.528:30): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=1501 comm="app_mt" exe="/opt/am62a/apps/app_mt" sig=6 res=1
 device for virtio2.rpmsg_chrdev.-1.13
_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpms[  163.096499] audit: type=1334 audit(1695896143.552:31): prog-id=19 op=LOAD
g_chrdev.-1.13
IPC: ERROR: Unable to create TX channels for CPU[  163.105175] audit: type=1334 audit(1695896143.560:32): prog-id=20 op=LOAD
 [mcu1_0] !!!
IPC: ERROR: Unable to create TX channels for CPU [c7x_1] !!!
IPC: Init ... Done !!!
APP: ERROR: IPC init failed !!!
REMOTE_SERVICE: Init ... !!!
_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio2.rpmsg_chrdev.-1.21
_rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpmsg_chrdev.-1.21
REMOTE_SERVICE: Init ... Done !!!
   169.643171 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
   169.643304 s:  VX_ZONE_INIT:Enabled
   169.643315 s:  VX_ZONE_ERROR:Enabled

The tidlrt example I used is https://github.com/TexasInstruments/edgeai-tidl-tools/tree/master/examples/tidlrt_cpp, it runs without any problem on TDA4EVM, TDA4ECO, sdk 8,4, sdk 8.6.

But got this error on AM62a, sdk9.0

Thanks,

Neal

  • Hello Neal Yan,

    Thank you for your query.

    This looks like OpenVX initialization failed. Is this the default AM62A SDK or a custom build, either through yocto or the downloaded SDK? Similarly, is this the AM62A EVM or a custom board?

    If you are on the default SDK, I would recommend rebooting the processor to start. Occasionally OpenVX will become unstable after starting and stopping applications several times (killing processes prevents graceful shutdown).

    If you are on a custom build, then a common issue is unintentionally using the wrong firmware for the device manager / wakeup core (an R5F, aka MCU1 in our documentation's conventions). This gets pulled in while compiling u-boot. Here's a relevant thread on that topic: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1282935/am62a7-cannot-run-example-imx219-pipeline-rpmsg-errors

    A good baseline test is under /opt/edgeai-gst-apps on the default SDK. The following command can be used to test the Openx and TIDL interfaces

    /opt/edgeai-gst-apps/apps_python/app_edgeai.py /opt/edgeai-gst-apps/configs/object_detection.yaml

    It will run an object detection model on a input video file and output to a 1920x1080 display. This YAML configuration file can be modified to use a different input, output, or model. See doc here for more info on these applications

    Best Regards,
    Reese

  • Hi Reese,

    Thank you for your fast reply, it's very helpful, the board is SK-AM62a-LP. I will try to use the official SDK to debug and get back later.

    Thanks,

    Neal

  • Hi Reese,

    This error was indeed caused by custom SDK, I tried the official SDK, this error is gone, but new error showed up.

    I used two exact same models, which can be imported and deployed on sdk8.4 and sdk8.6 without any problem. But when switch to SDK9.0, both of them show errors.

    I prefer using the tidlrt, something like ./ti_model_import.out config.txt, but I can't find related docs anymore since the newer SDK, I think the upper level API like onnx, tvm, tflite eventually use the tidlrt under the hood right?

    Neal

  • Hi Neal,

    TIDL_RT is in fact used under the hood by all of the open source API's. TIDL_RT is therefore used, but we have limited support on this topic. Older documents are still correct and documents from Jacinto devices will be effectively the same on AM62A, but TIDL_RT is not officially supported on AM62A device.

    For AM62A, we are directing users to use open source runtime APIs like ONNX and TF-Lite.

    The issue you are running into is during compilation or inference on device?

    Best,
    Reese