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!