Tool/software:
I encountered a problem during the development of the camera bringup.The details are as follows:
There are four cameras, connected to a deserializer. But the four cameras don't need to be controlled, so I only implemented the driver for the deserializer.
I developed according to Chapter 3.2.2.2 CSI2RX of the Processor SDK Linux Software Developer's Guide.
The driver has been probed, here are the logs from lsmode and media graph.
$ lsmod | grep 712 max96712 12288 1 v4l2_async 20480 4 v4l2_fwnode,j721e_csi2rx,cdns_csi2rx,max96712 videodev 258048 8 v4l2_async,v4l2_fwnode,j721e_csi2rx,videobuf2_v4l2,cdns_csi2rx,max96712,v4l2_mem2mem,wave5 mc 61440 8 v4l2_async,videodev,j721e_csi2rx,videobuf2_v4l2,cdns_csi2rx,videobuf2_common,max96712,v4l2_mem2mem $ media-ctl -p Media controller API version 6.6.32 Media device information ------------------------ driver j721e-csi2rx model TI-CSI2RX serial bus info platform:30102000.ticsi2rx hw revision 0x1 driver version 6.6.32 Device topology - entity 1: 30102000.ticsi2rx (7 pads, 7 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE] pad2: Source -> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE] pad3: Source -> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE] pad4: Source -> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE] pad5: Source -> "30102000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE] pad6: Source -> "30102000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE] - entity 9: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "max96712 1-0027":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE] pad2: Source pad3: Source pad4: Source - entity 15: max96712 1-0027 (1 pad, 1 link, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: Source [stream:0 fmt:RGB888_1X24/1920x1080 field:none] -> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE] - entity 21: 30102000.ticsi2rx context 0 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video2 pad0: Sink <- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE] - entity 27: 30102000.ticsi2rx context 1 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video3 pad0: Sink <- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE] - entity 33: 30102000.ticsi2rx context 2 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: Sink <- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE] - entity 39: 30102000.ticsi2rx context 3 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0: Sink <- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE] - entity 45: 30102000.ticsi2rx context 4 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video6 pad0: Sink <- "30102000.ticsi2rx":5 [ENABLED,IMMUTABLE] - entity 51: 30102000.ticsi2rx context 5 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video7 pad0: Sink <- "30102000.ticsi2rx":6 [ENABLED,IMMUTABLE]
The oscilloscope measurement can confirm that the deserializer has sent image data at this time.
When I continue to execute the Capturing raw frames command, I get an error: No sensor found
$ LIBCAMERA_LOG_LEVELS=*:DEBUG cam -c1 --stream width=640,height=480,pixelformat=UYVY -C20 [5:28:22.165815510] [1384] DEBUG IPAModule ipa_module.cpp:334 ipa_rkisp1.so: IPA module /usr/lib/libcamera/ipa_rkisp1.so is signed [5:28:22.166152500] [1384] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/libcamera/ipa_rkisp1.so' [5:28:22.166392220] [1384] DEBUG IPAModule ipa_module.cpp:334 ipa_rpi_vc4.so: IPA module /usr/lib/libcamera/ipa_rpi_vc4.so is signed [5:28:22.166492085] [1384] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/libcamera/ipa_rpi_vc4.so' [5:28:22.166631620] [1384] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+dirty (2024-08-19T13:39:16+00:00) [5:28:22.167048720] [1385] DEBUG Camera camera_manager.cpp:69 Starting camera manager [5:28:22.180743400] [1385] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "j721e-csi2rx" created from /dev/media0 [5:28:22.181584125] [1385] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 7 missing dependencies [5:28:22.185222680] [1385] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found [5:28:22.185301070] [1385] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media0: j721e-csi2rx [5:28:22.186494685] [1385] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerISI' [5:28:22.186635085] [1385] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerRkISP1' [5:28:22.186725140] [1385] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerVc4' [5:28:22.186778740] [1385] DEBUG RPI vc4.cpp:179 Unable to acquire a Unicam instance [5:28:22.186801965] [1385] DEBUG RPI vc4.cpp:179 Unable to acquire a Unicam instance [5:28:22.186824330] [1385] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'SimplePipelineHandler' [5:28:22.186854935] [1385] DEBUG DeviceEnumerator device_enumerator.cpp:318 Successful match for media device "j721e-csi2rx" [5:28:22.186930735] [1385] ERROR SimplePipeline simple.cpp:1424 No sensor found [5:28:22.186964820] [1385] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerUVC' Camera 1 not found Failed to create camera session
The relevant dts files are as follows. Could you please help confirm the reason for this error?
&main_i2c1 { #address-cells = <1>; #size-cells = <0>; status = "okay"; camera@27 { compatible = "maxim,max96712"; reg = <0x27>; clocks = <&clk_max96712_fixed>; clock-names = "xclk"; port { csi2_cam0: endpoint { remote-endpoint = <&csi2rx0_in_sensor>; #link-frequencies = /bits/ 64 <456000000>; clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; &cdns_csi2rx0 { ports { #address-cells = <1>; #size-cells = <0>; csi0_port0: port@0 { reg = <0>; status = "okay"; csi2rx0_in_sensor: endpoint { remote-endpoint = <&csi2_cam0>; bus-type = <4>; /* CSI2 DPHY. */ clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; &ti_csi2rx0 { status = "okay"; }; &dphy0 { status = "okay"; };