i.MX95 max96724 2 cameras bringup issue when I plugin 1 camera I can bring up the camera, but I plugin 2 cameras (same module), all the cameras bring up failed. log info: Setting pipeline to PLAYING ... New clock: GstSystemClock [0:00:31.239670305] [973] INFO Camera camera.cpp:1215 configuring streams: (0) 1920x1536-YUYV/Unset [0:00:31.250185346] [972] ERROR V4L2 v4l2_videodevice.cpp:1991 /dev/video0[15:cap]: Failed to start streaming: Broken pipe ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Failed to start the camera: Broken pipe Additional debug info: ../src/gstreamer/gstlibcamerasrc.cpp(871): gst_libcamera_src_task_enter (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Camera.start() failed with error code -32 Execution ended after 0:00:00.012442958 Setting pipeline to NULL ... Freeing pipeline ... Re: i.MX95 max96724 2 cameras bringup issue When two max9295a cameras are connected to same MAX96724, only Frame Sync mode can work, free run will not work in multiple camera use case on MAX96724.
In fact, the main loading to debug the MAX96724 is on the setting between camera (MAX9295a) and MAX96724, I think customer maybe need support from Maxim. Before Linux can work, they should make sure MAX96724's LOCK bit is set without error, only after that, MAX96724 can output MIPI video frames to iMX95. Re: i.MX95 max96724 2 cameras bringup issue What's the camera sensor? Are they set to Frame Sync mode in driver? Some camera are working in free run in default, in this case, single camera can work on MAX96724 directly, but for multiple cameras, MAX96724 needs they work in Frame Sync mode, all the cameras should send out video frame after they received the SYNC signal from MAX96724.
And what's the media-ctl command the customer used? Re: i.MX95 max96724 2 cameras bringup issue Yes, the GMSL2 Link A&B is Locked for max96724 -> 2 max9295a cameras. driver log: [ 9.882277] max96724 3-0027: GMSL link mask: configured = 0xf, locked = 0x3 driver code: while (retries--) { locked_links = max96724_check_gmsl_links(priv); if (locked_links == priv->gmsl_link_mask) break; usleep_range(2000, 2500); } if (locked_links == 0) { regmap_write(priv->rmap, MAX96724_TOP_CTRL_PWR1, RESET_ALL); dev_err(dev, "No GMSL link has locked after 3 retries. Abort!\n"); return -ENODEV; } dev_info(dev, "GMSL link mask: configured = 0x%x, locked = 0x%x\n", priv->gmsl_link_mask, locked_links); So, is must need the frame sync between max96724 and max9295a? Re: i.MX95 max96724 2 cameras bringup issue the camera with max9295a,is working in free run, no frame sync need. cam -l , media-ctl & gst log info: root@imx95evk:~# cam -l [0:01:54.016285137] [1058] WARN IPAManager ipa_manager.cpp:148 No IPA found in '/media/jeffin/dev-work/nxp/codeaurora/libcamera/install/lib/libcamera/ipa' [0:01:54.016504762] [1058] INFO Camera camera_manager.cpp:330 libcamera v0.0.0+6194-lf-6.12.49-2.2.0-dirty (2026-04-24T21:03:02CST) [0:01:54.061756845] [1059] WARN CameraSensor camera_sensor_legacy.cpp:502 'mx95wecam 8-0062': No sensor delays found in static properties. Assuming unverified defaults. [0:01:54.061982970] [1059] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x00980911 but control is not exposed by device /dev/v4l-subdev12 [0:01:54.062069678] [1059] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009e0903 but control is not exposed by device /dev/v4l-subdev12 [0:01:54.068941887] [1059] WARN CameraSensor camera_sensor_legacy.cpp:502 'mx95wecam 9-0062': No sensor delays found in static properties. Assuming unverified defaults. [0:01:54.069094470] [1059] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x00980911 but control is not exposed by device /dev/v4l-subdev13 [0:01:54.069152970] [1059] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009e0903 but control is not exposed by device /dev/v4l-subdev13 [0:01:54.073940928] [1059] INFO Camera camera_manager.cpp:220 Adding camera '/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@0/mx95wecam@62' for pipeline handler simple [0:01:54.074970262] [1059] INFO Camera camera_manager.cpp:220 Adding camera '/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@1/mx95wecam@62' for pipeline handler simple Available cameras: 1: 'mx95wecam' (/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@0/mx95wecam@62) 2: 'mx95wecam' (/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@1/mx95wecam@62) root@imx95evk:~# media-ctl -d /dev/media0 -p Media controller API version 6.12.49 Media device information ------------------------ driver mxc-isi model FSL Capture Media Device serial bus info platform:4ad50000.isi hw revision 0x0 driver version 6.12.49 Device topology - entity 1: crossbar (13 pads, 10 links, 8 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 routes: 2/0 -> 5/0 [ACTIVE] 2/0 -> 6/0 [ACTIVE] 2/0 -> 7/0 [ACTIVE] 2/0 -> 8/0 [ACTIVE] 2/0 -> 9/0 [ACTIVE] 2/0 -> 10/0 [ACTIVE] 2/0 -> 11/0 [ACTIVE] 2/0 -> 12/0 [ACTIVE] pad0: SINK,MUST_CONNECT pad1: SINK,MUST_CONNECT pad2: SINK,MUST_CONNECT [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] <- "4ac10000.syscon:formatter@20":1 [ENABLED,IMMUTABLE] pad3: SINK,MUST_CONNECT pad4: SINK,MUST_CONNECT <- "mxc_isi.output":0 [ENABLED,IMMUTABLE] pad5: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.0":0 [ENABLED,IMMUTABLE] pad6: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.1":0 [ENABLED,IMMUTABLE] pad7: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.2":0 [ENABLED,IMMUTABLE] pad8: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.3":0 [ENABLED,IMMUTABLE] pad9: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.4":0 [ENABLED,IMMUTABLE] pad10: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.5":0 [ENABLED,IMMUTABLE] pad11: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.6":0 [ENABLED,IMMUTABLE] pad12: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range] -> "mxc_isi.7":0 [ENABLED,IMMUTABLE] - entity 15: mxc_isi.0 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":5 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.0.capture":0 [ENABLED,IMMUTABLE] - entity 18: mxc_isi.0.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video0 pad0: SINK <- "mxc_isi.0":1 [ENABLED,IMMUTABLE] - entity 26: mxc_isi.1 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev2 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":6 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.1.capture":0 [ENABLED,IMMUTABLE] - entity 29: mxc_isi.1.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video1 pad0: SINK <- "mxc_isi.1":1 [ENABLED,IMMUTABLE] - entity 37: mxc_isi.2 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev3 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":7 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.2.capture":0 [ENABLED,IMMUTABLE] - entity 40: mxc_isi.2.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video2 pad0: SINK <- "mxc_isi.2":1 [ENABLED,IMMUTABLE] - entity 48: mxc_isi.3 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev4 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":8 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.3.capture":0 [ENABLED,IMMUTABLE] - entity 51: mxc_isi.3.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video3 pad0: SINK <- "mxc_isi.3":1 [ENABLED,IMMUTABLE] - entity 59: mxc_isi.4 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev5 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":9 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.4.capture":0 [ENABLED,IMMUTABLE] - entity 62: mxc_isi.4.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: SINK <- "mxc_isi.4":1 [ENABLED,IMMUTABLE] - entity 70: mxc_isi.5 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev6 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":10 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.5.capture":0 [ENABLED,IMMUTABLE] - entity 73: mxc_isi.5.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0: SINK <- "mxc_isi.5":1 [ENABLED,IMMUTABLE] - entity 81: mxc_isi.6 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev7 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":11 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.6.capture":0 [ENABLED,IMMUTABLE] - entity 84: mxc_isi.6.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video6 pad0: SINK <- "mxc_isi.6":1 [ENABLED,IMMUTABLE] - entity 92: mxc_isi.7 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev8 pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/1920x1536 compose:(0,0)/1920x1536] <- "crossbar":12 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/1920x1536 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "mxc_isi.7.capture":0 [ENABLED,IMMUTABLE] - entity 95: mxc_isi.7.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video7 pad0: SINK <- "mxc_isi.7":1 [ENABLED,IMMUTABLE] - entity 103: mxc_isi.output (1 pad, 1 link) type Node subtype V4L flags 0 pad0: SOURCE -> "crossbar":4 [ENABLED,IMMUTABLE] - entity 110: 4ac10000.syscon:formatter@20 (2 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev9 routes: 0/0 -> 1/0 [ACTIVE] pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range] <- "csidev-4ad30000.csi":1 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range] -> "crossbar":2 [ENABLED,IMMUTABLE] - entity 115: csidev-4ad30000.csi (2 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev10 routes: 0/0 -> 1/0 [ACTIVE] pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range] <- "max96724 3-0027":4 [ENABLED] pad1: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range] -> "4ac10000.syscon:formatter@20":0 [ENABLED,IMMUTABLE] - entity 120: max96724 3-0027 (6 pads, 3 links, 4 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev11 routes: 0/0 -> 4/0 [ACTIVE] 1/0 -> 4/1 [ACTIVE] 2/0 -> 5/2 [ACTIVE] 3/0 -> 5/3 [ACTIVE] pad0: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 colorspace:raw] <- "mx95wecam 8-0062":0 [ENABLED,IMMUTABLE] pad1: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 colorspace:raw] <- "mx95wecam 9-0062":0 [ENABLED,IMMUTABLE] pad2: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 colorspace:raw] pad3: SINK [stream:0 fmt:UYVY8_1X16/1920x1536 colorspace:raw] pad4: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 colorspace:raw] [stream:1 fmt:UYVY8_1X16/1920x1536 colorspace:raw] -> "csidev-4ad30000.csi":0 [ENABLED] pad5: SOURCE [stream:2 fmt:UYVY8_1X16/1920x1536 colorspace:raw] [stream:3 fmt:UYVY8_1X16/1920x1536 colorspace:raw] - entity 129: mx95wecam 8-0062 (1 pad, 1 link, 0 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev12 pad0: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:raw xfer:none ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "max96724 3-0027":0 [ENABLED,IMMUTABLE] - entity 133: mx95wecam 9-0062 (1 pad, 1 link, 0 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev13 pad0: SOURCE [stream:0 fmt:UYVY8_1X16/1920x1536 field:none colorspace:raw xfer:none ycbcr:601 quantization:full-range crop.bounds:(0,0)/1920x1536 crop:(0,0)/1920x1536] -> "max96724 3-0027":1 [ENABLED,IMMUTABLE] root@imx95evk:~# gst-launch-1.0 libcamerasrc camera-name=/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@0/mx95wecam@62 ! video/x-raw,width=1920,height=1536,format=YUY2 ! autovid eosink Setting pipeline to PAUSED ... [0:03:53.646204235] [1061] WARN IPAManager ipa_manager.cpp:148 No IPA found in '/media/jeffin/dev-work/nxp/codeaurora/libcamera/install/lib/libcamera/ipa' [0:03:53.646456819] [1061] INFO Camera camera_manager.cpp:330 libcamera v0.0.0+6194-lf-6.12.49-2.2.0-dirty (2026-04-24T21:03:02CST) [0:03:53.694436152] [1068] WARN CameraSensor camera_sensor_legacy.cpp:502 'mx95wecam 8-0062': No sensor delays found in static properties. Assuming unverified defaults. [0:03:53.694678277] [1068] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x00980911 but control is not exposed by device /dev/v4l-subdev12 [0:03:53.694785485] [1068] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009e0903 but control is not exposed by device /dev/v4l-subdev12 [0:03:53.702510985] [1068] WARN CameraSensor camera_sensor_legacy.cpp:502 'mx95wecam 9-0062': No sensor delays found in static properties. Assuming unverified defaults. [0:03:53.702685235] [1068] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x00980911 but control is not exposed by device /dev/v4l-subdev13 [0:03:53.702777610] [1068] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009e0903 but control is not exposed by device /dev/v4l-subdev13 [0:03:53.708162819] [1068] INFO Camera camera_manager.cpp:220 Adding camera '/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@0/mx95wecam@62' for pipeline handler simple [0:03:53.709431777] [1068] INFO Camera camera_manager.cpp:220 Adding camera '/base/soc/bus@42000000/i2c@42540000/max96724@27/i2c-mux/i2c@1/mx95wecam@62' for pipeline handler simple Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock [0:03:53.713476694] [1069] INFO Camera camera.cpp:1215 configuring streams: (0) 1920x1536-YUYV/Unset [0:03:53.724398360] [1068] ERROR V4L2 v4l2_videodevice.cpp:1991 /dev/video0[15:cap]: Failed to start streaming: Broken pipe ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Failed to start the camera: Broken pipe Additional debug info: ../src/gstreamer/gstlibcamerasrc.cpp(871): gst_libcamera_src_task_enter (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Camera.start() failed with error code -32 Execution ended after 0:00:00.013385834 Setting pipeline to NULL ... Freeing pipeline ...
記事全体を表示