Part Number: AM625
Tool/software:
Hello all,
I’m working on getting my dual camera setup running on the AM625. I have two cameras: one ISX021 and one OV2311, connected via a MAX96716/MAX96717 SerDes pair. Below is the output of my `media-ctl -p` command:
root@myd-am62x:~# media-ctl -p
Media controller API version 6.1.46
Media device information
------------------------
driver j721e-csi2rx
model TI-CSI2RX
serial
bus info platform:30102000.ticsi2rx
hw revision 0x1
driver version 6.1.46
Device topology
- entity 1: 30102000.ticsi2rx (5 pads, 5 links, 2 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
routes:
0/0 -> 1/0 [ACTIVE]
0/1 -> 2/0 [ACTIVE]
pad0: Sink
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
[stream:1 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb]
<- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
-> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
pad2: Source
[stream:0 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb]
-> "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]
- entity 7: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 2 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
routes:
0/0 -> 1/0 [ACTIVE]
0/1 -> 1/1 [ACTIVE]
pad0: Sink
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
[stream:1 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb]
<- "max96716 1-004c":2 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
[stream:1 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb]
-> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE]
pad2: Source
pad3: Source
pad4: Source
- entity 13: max96716 1-004c (4 pads, 3 links, 2 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev2
routes:
0/0 -> 2/0 [ACTIVE]
1/0 -> 2/1 [ACTIVE]
pad0: Sink
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
<- "max96717 1-0040":1 [ENABLED,IMMUTABLE]
pad1: Sink
[stream:0 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
<- "max96717 1-0041":1 [ENABLED,IMMUTABLE]
pad2: Source
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
[stream:1 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
-> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE]
pad3: Source
- entity 20: max96717 1-0040 (2 pads, 2 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev3
routes:
0/0 -> 1/0 [ACTIVE]
pad0: Sink
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
<- "ov2311_mipi 1-0010":0 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
-> "max96716 1-004c":0 [ENABLED,IMMUTABLE]
- entity 25: max96717 1-0041 (2 pads, 2 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev4
routes:
0/0 -> 1/0 [ACTIVE]
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
<- "isx021_mipi 1-001a":0 [ENABLED,IMMUTABLE]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
-> "max96716 1-004c":1 [ENABLED,IMMUTABLE]
- entity 30: isx021_mipi 1-001a (1 pad, 1 link, 0 route)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev5
pad0: Source
[stream:0 fmt:UYVY8_1X16/1920x1280 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
-> "max96717 1-0041":0 [ENABLED,IMMUTABLE]
- entity 34: ov2311_mipi 1-0010 (1 pad, 1 link, 0 route)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev6
pad0: Source
[stream:0 fmt:Y8_1X8/1280x800 field:none colorspace:srgb]
-> "max96717 1-0040":0 [ENABLED,IMMUTABLE]
- entity 40: 30102000.ticsi2rx context 0 (1 pad, 1 link, 0 route)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE]
- entity 46: 30102000.ticsi2rx context 1 (1 pad, 1 link, 0 route)
type Node subtype V4L flags 0
device node name /dev/video1
pad0: Sink
<- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE]
- entity 52: 30102000.ticsi2rx context 2 (1 pad, 1 link, 0 route)
type Node subtype V4L flags 0
device node name /dev/video2
pad0: Sink
<- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE]
- entity 58: 30102000.ticsi2rx context 3 (1 pad, 1 link, 0 route)
type Node subtype V4L flags 0
device node name /dev/video3
pad0: Sink
<- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE]
The problem is that I can successfully get a video stream from the OV2311 camera connected to port A of the deserializer:
root@myd-am62x:~# v4l2-ctl --device /dev/video0 --set-fmt-video=width=1280,height=800,pixelformat=GREY --stream-mmap <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.16 fps <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.16 fps <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.16 fps
However, I cannot get a stream from the ISX021 camera connected to port B:
root@myd-am62x:~# v4l2-ctl --device /dev/video1 --set-fmt-video=width=1920,height=1280,pixelformat=YUYV --stream-mmap ^C
I verified that the deserializer’s `VIDEO_LOCK` and `CSI1_PKT_CNT` registers indicate the deserializer is receiving frames (packet count is increasing and video lock is present).
I also used devmem2 to read some registers from the AM62x Sitara processor (referencing the technical reference manual), and here are the results during streaming:root@myd-am62x:~# devmem2 0x30101200 w
/dev/mem opened.
Memory mapped at address 0xffff7fb54000.
Read at address 0x30101200 (0xffff7fb54200): 0x00000000
root@myd-am62x:~# devmem2 0x30101204 w
/dev/mem opened.
Memory mapped at address 0xffff84515000.
Read at address 0x30101204 (0xffff84515204): 0x80000011
root@myd-am62x:~# devmem2 0x30101208 w
/dev/mem opened.
Memory mapped at address 0xffffa3135000.
Read at address 0x30101208 (0xffffa3135208): 0x00000000
root@myd-am62x:~# devmem2 0x3010120C w
/dev/mem opened.
Memory mapped at address 0xffffb37f0000.
Read at address 0x3010120C (0xffffb37f020c): 0x00000100
root@myd-am62x:~# devmem2 0x30101210 w
/dev/mem opened.
Memory mapped at address 0xffffa0f4d000.
Read at address 0x30101210 (0xffffa0f4d210): 0x00000000
root@myd-am62x:~# devmem2 0x30101214 w
/dev/mem opened.
Memory mapped at address 0xffff8a80c000.
Read at address 0x30101214 (0xffff8a80c214): 0x00000000
root@myd-am62x:~# devmem2 0x30101218 w
/dev/mem opened.
Memory mapped at address 0xffffb48c8000.
Read at address 0x30101218 (0xffffb48c8218): 0x00000000
root@myd-am62x:~# devmem2 0x3010121C w
/dev/mem opened.
Memory mapped at address 0xffffaba8b000.
Read at address 0x3010121C (0xffffaba8b21c): 0x00000000
root@myd-am62x:~# devmem2 0x30101220 w
/dev/mem opened.
Memory mapped at address 0xffffa9962000.
Read at address 0x30101220 (0xffffa9962220): 0x00000000
root@myd-am62x:~# devmem2 0x30101224 w
/dev/mem opened.
Memory mapped at address 0xffff98c28000.
Read at address 0x30101224 (0xffff98c28224): 0x00000000
root@myd-am62x:~# devmem2 0x30101228 w
/dev/mem opened.
Memory mapped at address 0xffffad587000.
Read at address 0x30101228 (0xffffad587228): 0x00000000
I’m currently stuck on this issue and would appreciate any guidance on what else I should check or try to enable streaming from both cameras on the AM625.
Thanks in advance!