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";
};

