Hello,
I have been working on implementing a TX2 with MAX9286 GMSL deserializer that has two MAX9271 serializers and OV10635 image sensors (1280x800 30fps) attached. I have the DeSer configured to output the frame sync clock to the cameras and the sensors are configured to use the external FSIN input. As you will see in the data, I actually have 3 DeSers all on separate I2C busses and seperate CSI channels, each with 2 cameras.
With DeSer, 2x Ser, and 2x sensors in device tree with vc-id and vc_id parameters set to 0 and 1 I can successfully probe all devices and create /dev/vid* devices, however, I can not capture from either sensor when they are both initialized. If I limit my driver to only initialize one sensor, it can be the sensor assigned vc-id 0 or 1, then I can capture frames successfully from either sensor.
Following Jetson TX2 Camera BringUp - eLinux.org I boost all clocks (and confirm them) then enabling the debug output for the tegra camera driver I run this command
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=800,pixelformat=UYVY --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --verbose
and see the following trace messages:
gst-launch-1.0-4957 [002] .... 2585.775118: tegra_channel_open: vi-output, ov10635 1-0031
gst-launch-1.0-4957 [002] .... 2585.776389: tegra_channel_set_power: ov10635 1-0031 : 0x1
gst-launch-1.0-4957 [002] .... 2585.776400: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [002] .... 2585.781859: tegra_channel_set_power: 150c0000.nvcsi--4 : 0x1
gst-launch-1.0-4957 [002] .... 2585.781862: csi_s_power: enable : 0x1
gst-launch-1.0-4957 [002] .... 2585.784388: tegra_channel_close: vi-output, ov10635 1-0031
gst-launch-1.0-4957 [002] .... 2585.784392: tegra_channel_set_power: ov10635 1-0031 : 0x0
gst-launch-1.0-4957 [002] .... 2585.784396: camera_common_s_power: status : 0x0
gst-launch-1.0-4957 [002] .... 2585.784460: tegra_channel_set_power: 150c0000.nvcsi--4 : 0x0
gst-launch-1.0-4957 [002] .... 2585.784462: csi_s_power: enable : 0x0
gst-launch-1.0-4957 [002] .... 2585.784749: tegra_channel_open: vi-output, ov10635 1-0032
gst-launch-1.0-4957 [002] .... 2585.784753: tegra_channel_set_power: ov10635 1-0032 : 0x1
gst-launch-1.0-4957 [002] .... 2585.784758: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [002] .... 2585.790197: tegra_channel_set_power: 150c0000.nvcsi--3 : 0x1
gst-launch-1.0-4957 [002] .... 2585.790200: csi_s_power: enable : 0x1
gst-launch-1.0-4957 [002] .... 2585.790480: tegra_channel_close: vi-output, ov10635 1-0032
gst-launch-1.0-4957 [002] .... 2585.790484: tegra_channel_set_power: ov10635 1-0032 : 0x0
gst-launch-1.0-4957 [002] .... 2585.790487: camera_common_s_power: status : 0x0
gst-launch-1.0-4957 [002] .... 2585.790551: tegra_channel_set_power: 150c0000.nvcsi--3 : 0x0
gst-launch-1.0-4957 [002] .... 2585.790553: csi_s_power: enable : 0x0
gst-launch-1.0-4957 [002] .... 2585.790796: tegra_channel_open: vi-output, ov10635 2-0031
gst-launch-1.0-4957 [002] .... 2585.790801: tegra_channel_set_power: ov10635 2-0031 : 0x1
gst-launch-1.0-4957 [002] .... 2585.790807: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [001] .... 2585.796276: tegra_channel_set_power: 150c0000.nvcsi--6 : 0x1
gst-launch-1.0-4957 [001] .... 2585.796283: csi_s_power: enable : 0x1
gst-launch-1.0-4957 [001] .... 2585.796645: tegra_channel_close: vi-output, ov10635 2-0031
gst-launch-1.0-4957 [001] .... 2585.796650: tegra_channel_set_power: ov10635 2-0031 : 0x0
gst-launch-1.0-4957 [001] .... 2585.796654: camera_common_s_power: status : 0x0
gst-launch-1.0-4957 [001] .... 2585.796716: tegra_channel_set_power: 150c0000.nvcsi--6 : 0x0
gst-launch-1.0-4957 [001] .... 2585.796718: csi_s_power: enable : 0x0
gst-launch-1.0-4957 [001] .... 2585.796975: tegra_channel_open: vi-output, ov10635 2-0032
gst-launch-1.0-4957 [001] .... 2585.796980: tegra_channel_set_power: ov10635 2-0032 : 0x1
gst-launch-1.0-4957 [001] .... 2585.796986: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [002] .... 2585.802433: tegra_channel_set_power: 150c0000.nvcsi--5 : 0x1
gst-launch-1.0-4957 [002] .... 2585.802435: csi_s_power: enable : 0x1
gst-launch-1.0-4957 [002] .... 2585.802742: tegra_channel_close: vi-output, ov10635 2-0032
gst-launch-1.0-4957 [002] .... 2585.802746: tegra_channel_set_power: ov10635 2-0032 : 0x0
gst-launch-1.0-4957 [002] .... 2585.802750: camera_common_s_power: status : 0x0
gst-launch-1.0-4957 [002] .... 2585.802810: tegra_channel_set_power: 150c0000.nvcsi--5 : 0x0
gst-launch-1.0-4957 [002] .... 2585.802812: csi_s_power: enable : 0x0
gst-launch-1.0-4957 [002] .... 2585.803053: tegra_channel_open: vi-output, ov10635 7-0031
gst-launch-1.0-4957 [002] .... 2585.803058: tegra_channel_set_power: ov10635 7-0031 : 0x1
gst-launch-1.0-4957 [002] .... 2585.803063: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [001] .... 2585.808451: tegra_channel_set_power: 150c0000.nvcsi--2 : 0x1
gst-launch-1.0-4957 [001] .... 2585.808454: csi_s_power: enable : 0x1
gst-launch-1.0-4957 [001] .... 2585.808489: tegra_channel_close: vi-output, ov10635 7-0031
gst-launch-1.0-4957 [001] .... 2585.808492: tegra_channel_set_power: ov10635 7-0031 : 0x0
gst-launch-1.0-4957 [001] .... 2585.808495: camera_common_s_power: status : 0x0
gst-launch-1.0-4957 [001] .... 2585.808504: tegra_channel_set_power: 150c0000.nvcsi--2 : 0x0
gst-launch-1.0-4957 [001] .... 2585.808505: csi_s_power: enable : 0x0
gst-launch-1.0-4957 [001] .... 2585.866050: tegra_channel_open: vi-output, ov10635 1-0031
gst-launch-1.0-4957 [001] .... 2585.866065: tegra_channel_set_power: ov10635 1-0031 : 0x1
gst-launch-1.0-4957 [001] .... 2585.866075: camera_common_s_power: status : 0x1
gst-launch-1.0-4957 [001] .... 2585.871566: tegra_channel_set_power: 150c0000.nvcsi--4 : 0x1
gst-launch-1.0-4957 [001] .... 2585.871571: csi_s_power: enable : 0x1
v4l2src0:src-4961 [000] .... 2585.881535: tegra_channel_capture_setup: vnc_id 0 W 1280 H 800 fmt cb
vi-output, ov10-4965 [001] .... 2585.881707: tegra_channel_set_stream: enable : 0x1
vi-output, ov10-4965 [001] .... 2585.883366: tegra_channel_set_stream: 150c0000.nvcsi--4 : 0x1
vi-output, ov10-4965 [001] .... 2585.883370: csi_s_stream: enable : 0x1
vi-output, ov10-4965 [001] .... 2585.883411: tegra_channel_set_stream: ov10635 1-0031 : 0x1
kworker/1:2-4702 [001] .... 2585.904350: rtos_queue_peek_from_isr_failed: tstamp:80985871108 queue:0x0b4b4500
kworker/1:2-4702 [001] .... 2585.904356: rtcpu_start: tstamp:80985871986
kworker/1:2-4702 [001] .... 2585.904360: rtos_queue_send_from_isr_failed: tstamp:80985879819 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2585.904362: rtos_queue_send_from_isr_failed: tstamp:80985879927 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2585.904364: rtos_queue_send_from_isr_failed: tstamp:80985880033 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2585.904366: rtos_queue_send_from_isr_failed: tstamp:80985880141 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2585.904368: rtos_queue_send_from_isr_failed: tstamp:80985880246 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2585.904370: rtos_queue_send_from_isr_failed: tstamp:80985880352 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2585.904400: rtos_queue_send_from_isr_failed: tstamp:80985880457 queue:0x0b4b0e58
kworker/1:2-4702 [001] .... 2585.904402: rtos_queue_send_from_isr_failed: tstamp:80985880562 queue:0x0b4b1c18
kworker/1:2-4702 [001] .... 2585.904404: rtos_queue_send_failed: tstamp:80985881029 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2585.904406: rtos_queue_send_failed: tstamp:80985881802 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2585.904408: rtcpu_vinotify_event: tstamp:80985943986 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:80985943615 data:0x00000100
vi-output, ov10-4965 [001] .... 2585.909343: tegra_channel_capture_frame: sof:2585.464940619
kworker/1:2-4702 [001] .... 2585.960355: rtcpu_vinotify_event: tstamp:80986749480 tag:CHANSEL_PXL_SOF channel:0x00 frame:110 vi_tstamp:80986748789 data:0x00000001
kworker/1:2-4702 [001] .... 2585.960358: rtcpu_vinotify_event: tstamp:80986749645 tag:ATOMP_FS channel:0x00 frame:110 vi_tstamp:80986748795 data:0x00000000
kworker/1:2-4702 [001] .... 2585.960359: rtcpu_vinotify_event: tstamp:80986749763 tag:CHANSEL_FAULT channel:0x00 frame:110 vi_tstamp:80986749201 data:0x00000100
kworker/1:2-4702 [001] .... 2585.960361: rtcpu_vinotify_event: tstamp:80986750606 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:110 vi_tstamp:80986749899 data:0x08000000
kworker/1:2-4702 [001] .... 2585.960363: rtcpu_vinotify_event: tstamp:80986750715 tag:CHANSEL_FAULT_FE channel:0x04 frame:110 vi_tstamp:80986750030 data:0x00000001
kworker/1:2-4702 [001] .... 2585.960365: rtcpu_vinotify_event: tstamp:80986750855 tag:ATOMP_FE channel:0x00 frame:110 vi_tstamp:80986750030 data:0x00000000
kworker/1:2-4702 [001] .... 2586.072338: rtos_queue_peek_from_isr_failed: tstamp:80990871437 queue:0x0b4b4500
kworker/1:2-4702 [001] .... 2586.128328: rtos_queue_send_from_isr_failed: tstamp:80993593432 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.128330: rtos_queue_send_from_isr_failed: tstamp:80993593541 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2586.128331: rtos_queue_send_from_isr_failed: tstamp:80993593648 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2586.128333: rtos_queue_send_from_isr_failed: tstamp:80993593756 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2586.128334: rtos_queue_send_from_isr_failed: tstamp:80993593860 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2586.128335: rtos_queue_send_from_isr_failed: tstamp:80993593963 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2586.128360: rtos_queue_send_from_isr_failed: tstamp:80993594067 queue:0x0b4b0e58
kworker/1:2-4702 [001] .... 2586.128362: rtos_queue_send_from_isr_failed: tstamp:80993594172 queue:0x0b4b1c18
kworker/1:2-4702 [001] .... 2586.128363: rtos_queue_send_failed: tstamp:80993594734 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.128364: rtos_queue_send_failed: tstamp:80993595014 queue:0x0b4a7258
vi-output, ov10-4965 [001] .... 2586.128542: tegra_channel_capture_setup: vnc_id 0 W 1280 H 800 fmt cb
vi-output, ov10-4965 [001] .... 2586.128573: tegra_channel_capture_frame: sof:2585.464940619
vi-output, ov10-4965 [001] .... 2586.142462: tegra_channel_capture_frame: sof:2585.698080603
kworker/1:2-4702 [001] .... 2586.184343: rtos_queue_send_from_isr_failed: tstamp:80993599526 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.184346: rtos_queue_send_from_isr_failed: tstamp:80993599634 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2586.184348: rtos_queue_send_from_isr_failed: tstamp:80993599740 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2586.184350: rtos_queue_send_from_isr_failed: tstamp:80993599848 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2586.184352: rtos_queue_send_from_isr_failed: tstamp:80993599953 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2586.184354: rtos_queue_send_from_isr_failed: tstamp:80993600058 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2586.184356: rtos_queue_send_from_isr_failed: tstamp:80993600163 queue:0x0b4b0e58
kworker/1:2-4702 [001] .... 2586.184358: rtos_queue_send_from_isr_failed: tstamp:80993600268 queue:0x0b4b1c18
kworker/1:2-4702 [001] .... 2586.184360: rtos_queue_send_failed: tstamp:80993600715 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.184362: rtos_queue_send_failed: tstamp:80993601706 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.184397: rtcpu_vinotify_event: tstamp:80993602668 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:80993601438 data:0x00000100
kworker/1:2-4702 [001] .... 2586.184399: rtcpu_vinotify_event: tstamp:80994035233 tag:CHANSEL_PXL_SOF channel:0x00 frame:117 vi_tstamp:80994034538 data:0x00000001
kworker/1:2-4702 [001] .... 2586.184401: rtcpu_vinotify_event: tstamp:80994035393 tag:ATOMP_FS channel:0x00 frame:117 vi_tstamp:80994034544 data:0x00000000
kworker/1:2-4702 [001] .... 2586.184403: rtcpu_vinotify_event: tstamp:80994035511 tag:CHANSEL_FAULT channel:0x00 frame:117 vi_tstamp:80994034950 data:0x00000100
kworker/1:2-4702 [001] .... 2586.184405: rtcpu_vinotify_event: tstamp:80994036362 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:117 vi_tstamp:80994035654 data:0x08000000
kworker/1:2-4702 [001] .... 2586.184406: rtcpu_vinotify_event: tstamp:80994036471 tag:CHANSEL_FAULT_FE channel:0x04 frame:117 vi_tstamp:80994035778 data:0x00000001
kworker/1:2-4702 [001] .... 2586.184408: rtcpu_vinotify_event: tstamp:80994036611 tag:ATOMP_FE channel:0x00 frame:117 vi_tstamp:80994035778 data:0x00000000
kworker/1:2-4702 [001] .... 2586.240340: rtos_queue_peek_from_isr_failed: tstamp:80995871431 queue:0x0b4b4500
vi-output, ov10-4965 [001] .... 2586.376583: tegra_channel_capture_setup: vnc_id 0 W 1280 H 800 fmt cb
vi-output, ov10-4965 [001] .... 2586.376615: tegra_channel_capture_frame: sof:2585.698080603
vi-output, ov10-4965 [001] .... 2586.408912: tegra_channel_capture_frame: sof:2585.964526225
kworker/1:2-4702 [001] .... 2586.412364: rtos_queue_send_from_isr_failed: tstamp:81000843064 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412367: rtos_queue_send_from_isr_failed: tstamp:81000843174 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2586.412369: rtos_queue_send_from_isr_failed: tstamp:81000843282 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2586.412371: rtos_queue_send_from_isr_failed: tstamp:81000843388 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2586.412373: rtos_queue_send_from_isr_failed: tstamp:81000843493 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2586.412375: rtos_queue_send_from_isr_failed: tstamp:81000843597 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2586.412376: rtos_queue_send_from_isr_failed: tstamp:81000843700 queue:0x0b4b0e58
kworker/1:2-4702 [001] .... 2586.412378: rtos_queue_send_from_isr_failed: tstamp:81000843807 queue:0x0b4b1c18
kworker/1:2-4702 [001] .... 2586.412381: rtos_queue_send_failed: tstamp:81000844366 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412383: rtos_queue_send_failed: tstamp:81000844646 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412386: rtos_queue_peek_from_isr_failed: tstamp:81000871421 queue:0x0b4b4500
kworker/1:2-4702 [001] .... 2586.412388: rtos_queue_send_from_isr_failed: tstamp:81001350685 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412389: rtos_queue_send_from_isr_failed: tstamp:81001350793 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2586.412391: rtos_queue_send_from_isr_failed: tstamp:81001350901 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2586.412392: rtos_queue_send_from_isr_failed: tstamp:81001351006 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2586.412394: rtos_queue_send_from_isr_failed: tstamp:81001351111 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2586.412395: rtos_queue_send_from_isr_failed: tstamp:81001351216 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2586.412397: rtos_queue_send_from_isr_failed: tstamp:81001351321 queue:0x0b4b0e58
kworker/1:2-4702 [001] .... 2586.412398: rtos_queue_send_from_isr_failed: tstamp:81001351426 queue:0x0b4b1c18
kworker/1:2-4702 [001] .... 2586.412400: rtos_queue_send_failed: tstamp:81001351878 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412401: rtos_queue_send_from_isr_failed: tstamp:81001352389 queue:0x0b4a7258
kworker/1:2-4702 [001] .... 2586.412403: rtos_queue_send_from_isr_failed: tstamp:81001352497 queue:0x0b4aad00
kworker/1:2-4702 [001] .... 2586.412404: rtos_queue_send_from_isr_failed: tstamp:81001352594 queue:0x0b4aad68
kworker/1:2-4702 [001] .... 2586.412405: rtos_queue_send_from_isr_failed: tstamp:81001352690 queue:0x0b4ac930
kworker/1:2-4702 [001] .... 2586.412407: rtos_queue_send_from_isr_failed: tstamp:81001352786 queue:0x0b4ac998
kworker/1:2-4702 [001] .... 2586.412408: rtos_queue_send_from_isr_failed: tstamp:81001352883 queue:0x0b4ae4b0
kworker/1:2-4702 [001] .... 2586.412409: rtos_queue_send_from_isr_failed: tstamp:81001352979 queue:0x0b4ae518
kworker/1:2-4702 [001] .... 2586.412411: rtos_queue_send_from_isr_failed: tstamp:81001353075 queue:0x0b4af270
kworker/1:2-4702 [001] .... 2586.412412: rtos_queue_send_from_isr_failed: tstamp:81001353171 queue:0x0b4af2d8
kworker/1:2-4702 [001] .... 2586.412413: rtos_queue_send_from_isr_failed: tstamp:81001353267 queue:0x0b4b0030
kworker/1:2-4702 [001] .... 2586.412415: rtos_queue_send_from_isr_failed: tstamp:81001353363 queue:0x0b4b0098
kworker/1:2-4702 [001] .... 2586.412416: rtos_queue_send_from_isr_failed: tstamp:81001353458 queue:0x0b4b0df0
The trace shows that frame counter is incrementing, and some of the tags are in the correct order, but there is an error of CHANSEL_FAULT = 0x100 which means PIXEL_LONG_LINE.
In order to get MAX9286 to sync cameras I begin streaming both cameras during probe.
I will continue to try changing frame width and confirming MAX9286 video link locks both cameras, but I am wondering if there are some other debugging steps I can take to extract more information, perhaps a raw data dump of CSI input?
As others have noted, there is no public documentation for the vc-id properties or using virtual channel ID yet, is that information available yet? I have referenced the IMX390 vc-id example in the source which uses GMSL2 components MAX9295 and MAX9296, and I believe the only thing that pertains to me are the vc-id and vc_id properties, but it would be nice to confirm. The rest of the issue must be in deserializer configuration and order of operations for the sensor streaming, but it is difficult to troubleshoot so any assistance is welcome.
Finally, this error message
kworker/1:2-4702 [001] .... 2585.904362: rtos_queue_send_from_isr_failed: tstamp:80985879927 queue:0x0b4aad68
I have read in this forum that it can be ignored, so is there a way to suppress the message since it occurs so frequently?
Andy