hailo8l with stm32mp

root@stm32mp25-eval:~/tappas/apps/h8/gstreamer/general/detection# ./detection.sh
/home/root/tappas/apps/h8/gstreamer/general/detection/../../../../../scripts/misc/checks_before_run.sh: line 108: xvinfo: command not found
Running yolov8m
gst-launch-1.0 filesrc location=/home/root/tappas/apps/h8/gstreamer/general/detection/resources/detection.mp4 name=src_0 ! decodebin ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! videoscale qos=false n-threads=2 ! video/x-raw, pixel-aspect-ratio=1/1 ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=2 qos=false ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! hailonet hef-path=/home/root/tappas/apps/h8/gstreamer/general/detection/resources/yolov8m.hef batch-size=1 nms-score-threshold=0.3 nms-iou-threshold=0.45 output-format-type=HAILO_FORMAT_TYPE_FLOAT32 ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! hailofilter function-name=yolov8m so-path=/usr/lib/hailo-post-processes/libyolo_hailortpp_post.so config-path=null qos=false ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! hailooverlay qos=false ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=2 qos=false ! queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! fakesink
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
Redistribute latency…
Redistribute latency…
Redistribute latency…
Redistribute latency…
[ 1510.716286] hailo 0000:01:00.0: swiotlb buffer is full (sz: 65536 bytes), total 32768 (slots), used 31356 (slots)
[ 1510.721004] hailo 0000:01:00.0: failed to map sg list for user buffer
[ 1510.730786] hailo 0000:01:00.0: failed map buffer ffff574d6000
[HailoRT] [error] Ioctl HAILO_VDMA_BUFFER_MAP failed with 6. Read dmesg log for more info
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36) - Failed map vdma buffer, please make sure using compatible api(dma buffer or raw buffer)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] Failed to map dma buffer, status: HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_DRIVER_OPERATION_FAILED(36)
CHECK_EXPECTED failed with status=36

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.266: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.267: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.273: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.304: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.336: gst_queue_array_push_tail: assertion ‘array != NULL’ failed
0:00:00.0 / 0:00:29.7 (0.0 %)
(gst-launch-1.0:2050): GStreamer-Base-CRITICAL **: 11:22:14.368: gst_queue_array_push_tail: assertion ‘array != NULL’ failed

Not getting the reason why this error is showing up ??

Any help would be appreciated.

I am not sure we have tested the STM32MP. For these types of issues it is usually a good idea to test the individual parts first.

  • Can you share a few points about your system e.g. hardware, what OS e.g. Yocto, kernel and HailoRT version are you using?
  • Can you use the Hailo-8L with the HailoRT CLI?
hailortcli fw-control identify
hailortcli run model.hef
  • Did you try running some shorter GStreamer pipelines e.g. without Hailo elements?

What did the dmesg log show?

Hi Klausk,
Found out the solution , the main issue was hailo 0000:01:00.0: swiotlb buffer is full , means ram was getting full so I had to increase it’s memory in boot partiton. Thanks for the help.

1 Like