Hailonet fails with "HAILO_VDMA_LAUNCH_TRANSFER failed due to invalid address" when using Sony LLCMOS 1920x1080 camera

Hi Hailo Team,

I am facing an issue with hailonet on an i.MX platform.

Environment:

  • Board: iMX 8m plus
  • Hailo Device: Hailo-8
  • HailoRT Version: HailoRT-CLI version 4.23.0
  • GStreamer Version: 1.24
  • Camera: Sony LLCMOS camera
  • Input Format: YUY2
  • Input Resolution: 1920x1080 @ 60 FPS

Issue:
When using hailonet in the pipeline, the pipeline gets stuck and prints the following errors:

[HailoRT] [error] Ioctl HAILO_VDMA_LAUNCH_TRANSFER failed due to invalid address
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_OPERATION(6) - Failed launch transfer

Pipeline:

gst-launch-1.0
v4l2src device=/dev/video3 do-timestamp=true
! video/x-raw,width=1280,height=720,framerate=60/1
! identity drop-buffer-flags=corrupted
! queue leaky=downstream max-size-buffers=5
! imxvideoconvert_g2d
! video/x-raw,pixel-aspect-ratio=1/1,width=640,height=640,format=RGBA
! videoconvert
! video/x-raw,format=RGB,width=640,height=640
! queue leaky=downstream max-size-buffers=5
! hailonet hef-path=../AI/model/Visible/yolov8s.hef
! fakesink

Observations:

  1. The same HEF works correctly with another camera that outputs 640x480.
  2. The pipeline runs correctly when hailonet is removed.
  3. The issue appears only when using the Sony LLCMOS camera stream.
  4. The error occurs during pipeline startup/preroll.

Could this be related to:

  • DMA buffer handling
  • Memory type negotiation
  • Stride/alignment from the Sony camera
  • Hailonet input requirements

Please let me know what additional logs or debug information would be useful.

Thank you.

Below output of commands:

root@imx8mp-lpddr4-evk:~# hailortcli --version
HailoRT-CLI version 4.23.0
root@imx8mp-lpddr4-evk:~# hailortcli scan
Hailo Devices:
[-] Device: 0000:01:00.0
root@imx8mp-lpddr4-evk:~# cd build/
root@imx8mp-lpddr4-evk:~/build# hailortcli parse-hef ../AI/model/Visible/yolov8s.hef
Architecture HEF was compiled for: HAILO8
Network group name: yolov8s, Single Context
Network name: yolov8s/yolov8s
VStream infos:
Input yolov8s/input_layer1 UINT8, NHWC(640x640x3)
Output yolov8s/yolov8_nms_postprocess FLOAT32, HAILO NMS BY CLASS(number of classes: 80, maximum bounding boxes per class: 100, maximum frame size: 160320)
Operation:
Op YOLOV8
Name: YOLOV8-Post-Process
Score threshold: 0.200
IoU threshold: 0.70
Classes: 80
Max bboxes per class: 100
Image height: 640
Image width: 640
root@imx8mp-lpddr4-evk:~/build# v4l2-ctl -d /dev/video5 --all
Driver Info:
Driver name : uvcvideo
Card type : HD_CAMERA
Bus info : usb-xhci-hcd.2.auto-1
Driver version : 6.6.23
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : HD_CAMERA
Serial :
Bus info : usb-xhci-hcd.2.auto-1
Media version : 6.6.23
Hardware revision: 0x00000000 (0)
Driver version : 6.6.23
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : HD_CAMERA
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x02000010: from remote pad 0x100000a of entity ‘Extension 3’ (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : ‘YUYV’ (YUYV 4:2:2)
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Limited Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1920, Height 1080
Default : Left 0, Top 0, Width 1920, Height 1080
Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 30.000 (30/1)
Read buffers : 0
root@imx8mp-lpddr4-evk:~/build# v4l2-ctl -d /dev/video5 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture

[0]: 'YUYV' (YUYV 4:2:2)
	Size: Discrete 1920x1080
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
		Interval: Discrete 0.100s (10.000 fps)
	Size: Discrete 1280x720
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
		Interval: Discrete 0.100s (10.000 fps)
	Size: Discrete 800x600
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
	Size: Discrete 640x480
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
	Size: Discrete 640x480
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
	Size: Discrete 800x600
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
	Size: Discrete 1280x720
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
		Interval: Discrete 0.100s (10.000 fps)
	Size: Discrete 1920x1080
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
		Interval: Discrete 0.100s (10.000 fps)