IMX95 Aquila ISP usage

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX95 Aquila ISP usage

240 Views
sben
Contributor II

Hello,

 

I bought an Aquila IMX95 Evaluation Kit 2 with two ov5640 sensors (https://www.toradex.com/cart).

I have the drivers for the sensors. The board is flashed correctly, with the isp module active :

root@imx95-1:~# lsmod | grep -i isp
neoisp 69632 0

 

The cameras are showing in libcamera :

root@imx95-1:~# libcamera
-sh: libcamera: command not found
root@imx95-1:~# cam -l
[17:17:31.010001558] [2747] INFO Camera camera_manager.cpp:327 libcamera v0.4.0+dirty (2026-06-03T11:26:44UTC)
[17:17:31.044088474] [2748] WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 4-003c': Recommended V4L2 control 0x009a0922 not supported
[17:17:31.044159391] [2748] WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 4-003c': The sensor kernel driver needs to be fixed
[17:17:31.044178224] [2748] WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 4-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[17:17:31.044882558] [2748] WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 4-003c': Failed to retrieve the camera location
[17:17:31.044918891] [2748] WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 4-003c': Rotation control not available, default to 0 degrees
[17:17:31.045722599] [2748] WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 3-003c': Recommended V4L2 control 0x009a0922 not supported
[17:17:31.045762974] [2748] WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 3-003c': The sensor kernel driver needs to be fixed
[17:17:31.045783849] [2748] WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 3-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[17:17:31.046362016] [2748] WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 3-003c': Failed to retrieve the camera location
[17:17:31.046388308] [2748] WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 3-003c': Rotation control not available, default to 0 degrees
[17:17:31.048068724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.048640224] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.048904099] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049145974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049451724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049694683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049937141] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050184266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050477516] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050720433] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050962433] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051201724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051441724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051683308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051925308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.052259141] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.052510099] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061185308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061469974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061736058] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061988683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062242933] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062489474] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062733266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062980349] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063228266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063470391] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063712849] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063953933] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064216891] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064463349] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064706683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064958766] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.065200974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
Available cameras:
1: 'ov5640' (/base/soc/bus@42000000/i2c@42540000/camera@3c)
2: 'ov5640' (/base/soc/bus@42000000/i2c@426e0000/camera@3c)

 

Just to check if the mipis are fine, I started a gstreamer pipeline and managed to get a stable 30fps stream on both cameras. I also managed to take snapshots with v4l2-ctl.

 

Now, I'd like to test the Aquila's ISP with my cameras to see what it can do.

Following the https://www.nxp.com/docs/en/user-guide/UG10215.pdf I added the environment variable :

root@imx95-1:~# export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo'

But, doing so, the camera is not detected anymore by libcamera and I don't know why :

root@imx95-1:~# cam -l
[17:36:38.947430563] [2788] INFO Camera camera_manager.cpp:327 libcamera v0.4.0+dirty (2026-06-03T11:26:44UTC)
Available cameras:
root@imx95-1:~#

 

Thank you for your reply !

 

Cordially,

0 Kudos
Reply
7 Replies

228 Views
yipingwang
NXP TechSupport
NXP TechSupport

My current suspicion is that one of the following is happening:

  1. OV5640 is running in YUV mode rather than RAW Bayer mode (most likely).
  2. The camera DT overlay is not the ISP-enabled variant.
  3. The Neo IPA/calibration components are missing from the root filesystem.
  4. The media topology seen by the Neo pipeline does not match the expected i.MX95 ISP graph.

The media-ctl -p output will usually pinpoint which of these is the actual issue.

0 Kudos
Reply

210 Views
sben
Contributor II

Thanks for the reply.

I did some additional checks:

  • You were right and the OV5640 was initially running in UYVY mode, but I manually switched one sensor to RAW Bayer (SRGGB8).
  • media-ctl -p now shows:
 
root@imx95-1:~# media-ctl -p
Media controller API version 6.12.55

Media device information
------------------------
driver          mxc-isi
model           FSL Capture Media Device
serial          
bus info        platform:4ad50000.isi
hw revision     0x0
driver version  6.12.55

Device topology
- entity 1: crossbar (13 pads, 11 links, 8 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	routes:
		2/0 -> 5/0 [ACTIVE]
		3/0 -> 6/0 [ACTIVE]
		2/0 -> 7/0 [ACTIVE]
		3/0 -> 8/0 [ACTIVE]
		2/0 -> 9/0 [ACTIVE]
		3/0 -> 10/0 [ACTIVE]
		2/0 -> 11/0 [ACTIVE]
		3/0 -> 12/0 [ACTIVE]
	pad0: SINK,MUST_CONNECT
	pad1: SINK,MUST_CONNECT
	pad2: SINK,MUST_CONNECT
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		<- "4ac10000.syscon:formatter@20":1 [ENABLED,IMMUTABLE]
	pad3: SINK,MUST_CONNECT
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		<- "4ac10000.syscon:formatter@120":1 [ENABLED,IMMUTABLE]
	pad4: SINK,MUST_CONNECT
		<- "mxc_isi.output":0 [ENABLED,IMMUTABLE]
	pad5: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.0":0 [ENABLED,IMMUTABLE]
	pad6: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.1":0 [ENABLED,IMMUTABLE]
	pad7: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.2":0 [ENABLED,IMMUTABLE]
	pad8: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.3":0 [ENABLED,IMMUTABLE]
	pad9: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.4":0 [ENABLED,IMMUTABLE]
	pad10: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.5":0 [ENABLED,IMMUTABLE]
	pad11: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.6":0 [ENABLED,IMMUTABLE]
	pad12: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "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/1920x1080 field:none
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":5 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video2
	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/1920x1080 field:none
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":6 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video3
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":7 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video4
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":8 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video5
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":9 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video6
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":10 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video7
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":11 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video8
	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/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":12 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "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/video9
	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@120 (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]
		<- "csidev-4ad40000.csi":1 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "crossbar":3 [ENABLED,IMMUTABLE]

- entity 115: 4ac10000.syscon:formatter@20 (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:SRGGB8_1X8/1920x1080]
		<- "csidev-4ad30000.csi":1 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080]
		-> "crossbar":2 [ENABLED,IMMUTABLE]

- entity 120: csidev-4ad30000.csi (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev11
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:SRGGB8_1X8/1920x1080 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		<- "ov5640 4-003c":0 [ENABLED]
	pad1: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		-> "4ac10000.syscon:formatter@20":0 [ENABLED,IMMUTABLE]

- entity 125: csidev-4ad40000.csi (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev12
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		<- "ov5640 3-003c":0 [ENABLED]
	pad1: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "4ac10000.syscon:formatter@120":0 [ENABLED,IMMUTABLE]

- entity 130: ov5640 4-003c (1 pad, 1 link, 0 routes)
              type V4L2 subdev subtype Sensor flags 0
              device node name /dev/v4l-subdev13
	pad0: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080@1/30 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/2624x1964
		 crop:(336,434)/1952x1088]
		-> "csidev-4ad30000.csi":0 [ENABLED]

- entity 134: ov5640 3-003c (1 pad, 1 link, 0 routes)
              type V4L2 subdev subtype Sensor flags 0
              device node name /dev/v4l-subdev14
	pad0: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/2624x1964
		 crop:(336,434)/1952x1088]
		-> "csidev-4ad40000.csi":0 [ENABLED]

(The second OV5640 remains in UYVY mode for comparison)

So :
  • OV5640 -> SRGGB8
  • CSI -> SRGGB8
  • Formatter -> SRGGB8
  • Crossbar -> SRGGB8

=> RAW Bayer is successfully propagated through the sensor, CSI and formatter.

 

The neoisp kernel module is loaded:

root@imx95-1:~# modprobe neoisp
root@imx95-1:~# lsmod | grep -i isp
neoisp                 69632  0

An ISP node is present in the running device tree:

 
/sys/firmware/devicetree/base/soc/isp@4ae00000
 

=> However, I only see a single media device (/dev/media0) exposing the CSI/Formatter/ISI pipeline. No neoisp entity appears in the media graph. I do not see any neoisp entity in the media graph, and I do not know whether this is expected.

=> cam -l (libcamera) still returns no available cameras.

 

At this point the RAW Bayer path appears functional, but I cannot identify where the Neo ISP becomes part of the active pipeline.

 
How can I verify that the stream is actually processed by the Neo ISP rather than simply following the CSI -> Formatter -> ISI path?
 
Also, is https://www.nxp.com/docs/en/user-guide/UG10215.pdf still the recommended guide for this setup, or is there a more specific reference for OV5640 + Neo ISP on i.MX95?
 
 
 
Cordially,
0 Kudos
Reply

155 Views
yipingwang
NXP TechSupport
NXP TechSupport

After looking at your logs, I believe the issue is not related to the MIPI interfaces or the OV5640 driver itself.

The fact that:

  • both OV5640 cameras are detected by libcamera
  • GStreamer can stream at 30 fps
  • v4l2-ctl can capture images

indicates that the sensor drivers, I2C communication, CSI-2 links and media topology are all working correctly.

The key point is that the NXP Neo ISP pipeline expects a RAW Bayer sensor input.

OV5640 is a SoC image sensor with its own internal image processing pipeline, and in the NXP BSP it is typically used in YUV output mode (for example YUV422) rather than as a RAW Bayer sensor. In such a configuration, the camera can be used through the standard V4L2/libcamera pipeline, but it does not match the requirements of the Neo ISP pipeline.

This would explain why:

  • `cam -l` shows both OV5640 cameras by default
  • after setting

export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo'

no cameras are detected anymore

The cameras are still present in the system, but the NEO pipeline handler cannot find a compatible camera topology and therefore exposes zero cameras to libcamera.

To verify the actual sensor output format, could you please provide the outputs of:

```bash
media-ctl -p
v4l2-ctl --list-formats-ext
We are particularly interested in whether the sensor exposes any RAW Bayer formats such as:
SBGGR8
SBGGR10
SRGGB10
RG10
BA10
If only YUV formats (for example YUYV/UYVY) are available, then the camera is not operating in RAW mode and cannot be processed by the Neo ISP pipeline.
Although the OV5640 hardware is capable of RAW Bayer output, RAW support is not commonly enabled in BSP camera drivers, and the NXP Neo ISP stack also relies on sensor-specific tuning data. Even if RAW output can be enabled, the absence of a dedicated OV5640 tuning profile may prevent proper ISP operation (AE/AWB/image quality tuning).
If your goal is to evaluate the Neo ISP framework itself, it may be easier to use a sensor that is known to work with the NXP ISP stack. Common candidates include:

OS08A20
OX03C10
OX05B1S
AR0521
AR1335 (may require additional tuning work)

Could you share the output of the commands above? That will allow us to confirm whether the current OV5640 configuration is exposing RAW Bayer formats to the system.
Best regards,

0 Kudos
Reply

115 Views
sben
Contributor II

Hello !

 

Here is the output :

root@imx95-1:~# v4l2-ctl --list-formats-ext -d /dev/video2
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar


	[0]: 'YUYV' (YUYV 4:2:2, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[1]: 'YUVA' (32-bit YUVA 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[2]: 'NV12' (Y/UV 4:2:0, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 2x2 - 4096x8190 with step 2/2
	[3]: 'NM12' (Y/UV 4:2:0 (N-C), csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 2x2 - 4096x8190 with step 2/2
	[4]: 'NV16' (Y/UV 4:2:2, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 2x1 - 4096x8191 with step 2/1
	[5]: 'NM16' (Y/UV 4:2:2 (N-C), csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 2x1 - 4096x8191 with step 2/1
	[6]: 'YM24' (Planar YUV 4:4:4 (N-C), csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[7]: 'RGBP' (16-bit RGB 5-6-5, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[8]: 'RGB3' (24-bit RGB 8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[9]: 'BGR3' (24-bit BGR 8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[10]: 'XR24' (32-bit BGRX 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[11]: 'AR24' (32-bit BGRA 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[12]: 'RA24' (32-bit ABGR 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[13]: 'AB24' (32-bit RGBA 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[14]: 'RX24' (32-bit XBGR 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[15]: 'XB24' (32-bit RGBX 8-8-8-8, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[16]: 'AR30' (32-bit ARGB 2-10-10-10, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[17]: 'GREY' (8-bit Greyscale, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[18]: 'Y10 ' (10-bit Greyscale, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[19]: 'Y12 ' (12-bit Greyscale, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[20]: 'Y14 ' (14-bit Greyscale, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[21]: 'BA81' (8-bit Bayer BGBG/GRGR, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[22]: 'GBRG' (8-bit Bayer GBGB/RGRG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[23]: 'GRBG' (8-bit Bayer GRGR/BGBG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[24]: 'RGGB' (8-bit Bayer RGRG/GBGB, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[25]: 'BG10' (10-bit Bayer BGBG/GRGR, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[26]: 'GB10' (10-bit Bayer GBGB/RGRG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[27]: 'BA10' (10-bit Bayer GRGR/BGBG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[28]: 'RG10' (10-bit Bayer RGRG/GBGB, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[29]: 'BG12' (12-bit Bayer BGBG/GRGR, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[30]: 'GB12' (12-bit Bayer GBGB/RGRG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[31]: 'BA12' (12-bit Bayer GRGR/BGBG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[32]: 'RG12' (12-bit Bayer RGRG/GBGB, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[33]: 'BG14' (14-bit Bayer BGBG/GRGR, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[34]: 'GB14' (14-bit Bayer GBGB/RGRG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[35]: 'GR14' (14-bit Bayer GRGR/BGBG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[36]: 'RG14' (14-bit Bayer RGRG/GBGB, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[37]: 'BYR2' (16-bit Bayer BGBG/GRGR, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[38]: 'GB16' (16-bit Bayer GBGB/RGRG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[39]: 'GR16' (16-bit Bayer GRGR/BGBG, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[40]: 'RG16' (16-bit Bayer RGRG/GBGB, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1
	[41]: 'MJPG' (Motion-JPEG, compressed, csc-colorspace, csc-ycbcr, csc-quantization, csc-xfer-func)
		Size: Stepwise 1x1 - 4096x8191 with step 1/1

If I read it correctly, camera does take raw bayer, and I configured it to aswell (hopefully I did it correctly).

I'll try to flash again with another image to see if the issue is somewhere around there.

 

Cordially,

0 Kudos
Reply

56 Views
yipingwang
NXP TechSupport
NXP TechSupport

Following up on our previous discussion, we have investigated the root cause of the Neo ISP pipeline not recognizing the OV5640 sensor.

The issue is that the NXP Neo IPA (Image Processing Algorithm) framework uses a CameraHelper factory to look up sensor-specific gain/exposure algorithms by matching the kernel V4L2 subdev model string. Since no CameraHelper was registered for "ov5640", the factory returned nullptr and the ISP pipeline could not be configured for this sensor.

To address this, we have implemented a CameraHelper for the OV5640 sensor based on the in-tree NXP kernel driver (drivers/media/i2c/ov5640.c

Gain register mapping:

  • Register: OV5640_REG_AEC_PK_REAL_GAIN (0x350a), 10-bit value
  • Format: Q6.4 fixed point, unity gain = 16
  • gainCode(g) = round(g * 16)
  • gain(code) = code / 16.0

Two files have been modified:

  1. camera_helper_ov5640.cpp – new CameraHelper implementation for OV5640, registered as "ov5640" to match the kernel subdev model string
  2. meson.build – added camera_helper_ov5640.cpp to the build source list

Please rebuild libcamera with these two files and retry with LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo'. The Neo ISP pipeline should now be able to find and configure the OV5640 sensor.

Note that while this enables the gain/exposure control path, a full ISP tuning profile (AE/AWB parameters) for OV5640 is not yet available. Image quality tuning may still require further work.

Please let us know the results after rebuilding.

0 Kudos
Reply

87 Views
yipingwang
NXP TechSupport
NXP TechSupport

Some update:
We checked this internally and would like to share the following observations regarding OV5640 and the i.MX95 Neo ISP pipeline.
Although the OV5640 is capable of outputting RAW Bayer data, we generally do not recommend the OV5640 + Neo ISP combination for new designs for the following reasons:

OV5640 is already an end-of-life (EOL) sensor.
Although RAW output is supported, the sensor itself provides only limited tunable controls compared to more recent RAW sensors.
NXP's i.MX95 reference camera solution is based on RAW sensors such as OS08A20, which are already supported and validated within the Neo ISP software framework.

Therefore, our recommendation would be one of the following:

Use OV5640 together with its existing image processing path (without relying on Neo ISP AE/AWB tuning functionality).
Use an NXP-supported RAW sensor such as OS08A20 if full Neo ISP functionality is required.
If OV5640 must be used with the Neo ISP pipeline, additional software enablement work will be required.

For the OV5640 + Neo ISP approach, a libcamera CameraHelper needs to be implemented. The following file can be used as a starting reference:
camera_helper_ov5640.cpp
https://github.com/nxp-imx/libcamera/blob/lf-6.6.52_2.2.0/src/ipa/nxp/cam_helper/camera_helper_ov564...


Please note that this CameraHelper implementation is only the first step. Its primary purpose is to allow libcamera to recognize and identify the OV5640 sensor. Additional sensor-specific adaptation is still required.
For example, if Neo ISP Auto Exposure (AE) is expected to work, APIs such as the sensor gain conversion functions need to be implemented. A simple example can be found in the IMX219 CameraHelper implementation:
https://github.com/nxp-imx/libcamera/blob/lf-6.18.20_2.0.0/src/ipa/nxp/cam_helper/camera_helper_imx2...
In particular, the customer would need to determine and implement the mapping between:

Sensor gain code
Real analog gain multiplier (gain value)

so that the Neo ISP AE algorithm can correctly control the sensor exposure and gain.
For CameraHelper development details, please refer to the Camera Porting Guide:
Section 5.3 – "Implementing a libcamera CameraHelper for a new sensor"
One special consideration for OV5640 is that it already contains its own AE functionality. Therefore, if the intention is to continue using the sensor's internal AE instead of the Neo ISP AE algorithm, implementations such as gainCodeToGain() and gainToGainCode() may not be strictly required. In this case, a basic CameraHelper used only for sensor detection may be sufficient to bring up the pipeline.
However, image quality tuning would still need to be evaluated and adjusted. Since OV5640 was not originally characterized and tuned as a Neo ISP reference sensor, additional ISP tuning work may be required to achieve optimal image quality.

Overall, while OV5640 RAW output can be connected to the i.MX95 Neo ISP pipeline, some sensor-specific libcamera and ISP integration work is expected. For new developments, we would recommend using a Neo ISP validated RAW sensor such as OS08A20 whenever possible.

 

0 Kudos
Reply

94 Views
yipingwang
NXP TechSupport
NXP TechSupport

Thank you for the update. The v4l2-ctl output confirms that the ISI capture node supports RAW Bayer formats, and the media-ctl -p output from your previous message already shows that the RAW Bayer path is correctly propagated through the pipeline:

OV5640 (SRGGB8) -> CSI (SRGGB8) -> Formatter (SRGGB8) -> Crossbar (SRGGB8)

So the sensor-side configuration looks correct.

The core issue now is that the neoisp module is loaded but does not appear in the media graph, and no /dev/media1 is created. This typically indicates that the neoisp driver loaded successfully as a kernel module but failed during device probe, which would prevent it from registering a media device.

Could you please provide the following diagnostic information:

# Check neoisp probe status
dmesg | grep -i neoisp
dmesg | grep -i "isp@4ae"
dmesg | grep -i "probe failed"
dmesg | grep -i "4ae00000"

# Confirm all available media devices
ls -la /dev/media*

# Check neoisp status in sysfs
ls /sys/bus/platform/drivers/nxp-neoisp/
cat /sys/firmware/devicetree/base/soc/isp@4ae00000/status

In parallel, we would also like to ask: do you have access to any of the following sensors that are officially supported by the NXP Neo ISP stack with complete tuning profiles?

  • OS08A20
  • OX03C10
  • OX05B1S

Testing with one of these sensors would allow us to quickly verify whether the Neo ISP driver itself is functioning correctly in your environment, and help isolate whether the issue is driver/environment-related or specific to the OV5640 configuration.

Note that while OV5640 is capable of RAW Bayer output, it does not have an official NXP Neo ISP tuning profile, which means even if the pipeline is connected correctly, AE/AWB and image quality tuning will not be available.

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2398147%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EIMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2398147%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EI%20bought%20an%20Aquila%20IMX95%20Evaluation%20Kit%202%20with%20two%20ov5640%20sensors%20(%3CA%20href%3D%22https%3A%2F%2Fwww.toradex.com%2Fcart%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.toradex.com%2Fcart%3C%2FA%3E).%3C%2FP%3E%3CP%3EI%20have%20the%20drivers%20for%20the%20sensors.%20The%20board%20is%20flashed%20correctly%2C%20with%20the%20isp%20module%20active%20%3A%3C%2FP%3E%3CPRE%3Eroot%40imx95-1%3A~%23%20lsmod%20%7C%20grep%20-i%20isp%3CBR%20%2F%3Eneoisp%2069632%200%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EThe%20cameras%20are%20showing%20in%20libcamera%20%3A%3C%2FP%3E%3CPRE%3Eroot%40imx95-1%3A~%23%20libcamera%3CBR%20%2F%3E-sh%3A%20libcamera%3A%20command%20not%20found%3CBR%20%2F%3Eroot%40imx95-1%3A~%23%20cam%20-l%3CBR%20%2F%3E%5B17%3A17%3A31.010001558%5D%20%5B2747%5D%20INFO%20Camera%20camera_manager.cpp%3A327%20libcamera%20v0.4.0%2Bdirty%20(2026-06-03T11%3A26%3A44UTC)%3CBR%20%2F%3E%5B17%3A17%3A31.044088474%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A354%20'ov5640%204-003c'%3A%20Recommended%20V4L2%20control%200x009a0922%20not%20supported%3CBR%20%2F%3E%5B17%3A17%3A31.044159391%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A426%20'ov5640%204-003c'%3A%20The%20sensor%20kernel%20driver%20needs%20to%20be%20fixed%3CBR%20%2F%3E%5B17%3A17%3A31.044178224%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A428%20'ov5640%204-003c'%3A%20See%20Documentation%2Fsensor_driver_requirements.rst%20in%20the%20libcamera%20sources%20for%20more%20information%3CBR%20%2F%3E%5B17%3A17%3A31.044882558%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A594%20'ov5640%204-003c'%3A%20Failed%20to%20retrieve%20the%20camera%20location%3CBR%20%2F%3E%5B17%3A17%3A31.044918891%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A616%20'ov5640%204-003c'%3A%20Rotation%20control%20not%20available%2C%20default%20to%200%20degrees%3CBR%20%2F%3E%5B17%3A17%3A31.045722599%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A354%20'ov5640%203-003c'%3A%20Recommended%20V4L2%20control%200x009a0922%20not%20supported%3CBR%20%2F%3E%5B17%3A17%3A31.045762974%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A426%20'ov5640%203-003c'%3A%20The%20sensor%20kernel%20driver%20needs%20to%20be%20fixed%3CBR%20%2F%3E%5B17%3A17%3A31.045783849%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A428%20'ov5640%203-003c'%3A%20See%20Documentation%2Fsensor_driver_requirements.rst%20in%20the%20libcamera%20sources%20for%20more%20information%3CBR%20%2F%3E%5B17%3A17%3A31.046362016%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A594%20'ov5640%203-003c'%3A%20Failed%20to%20retrieve%20the%20camera%20location%3CBR%20%2F%3E%5B17%3A17%3A31.046388308%5D%20%5B2748%5D%20WARN%20CameraSensor%20camera_sensor_legacy.cpp%3A616%20'ov5640%203-003c'%3A%20Rotation%20control%20not%20available%2C%20default%20to%200%20degrees%3CBR%20%2F%3E%5B17%3A17%3A31.048068724%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.048640224%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.048904099%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.049145974%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.049451724%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.049694683%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.049937141%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.050184266%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.050477516%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.050720433%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.050962433%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.051201724%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.051441724%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.051683308%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.051925308%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.052259141%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.052510099%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.061185308%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.061469974%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.061736058%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.061988683%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.062242933%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.062489474%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.062733266%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.062980349%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.063228266%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.063470391%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.063712849%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.063953933%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.064216891%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.064463349%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.064706683%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.064958766%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3E%5B17%3A17%3A31.065200974%5D%20%5B2748%5D%20WARN%20V4L2%20v4l2_pixelformat.cpp%3A346%20Unsupported%20V4L2%20pixel%20format%20AR30%3CBR%20%2F%3EAvailable%20cameras%3A%3CBR%20%2F%3E1%3A%20'ov5640'%20(%2Fbase%2Fsoc%2Fbus%4042000000%2Fi2c%4042540000%2Fcamera%403c)%3CBR%20%2F%3E2%3A%20'ov5640'%20(%2Fbase%2Fsoc%2Fbus%4042000000%2Fi2c%40426e0000%2Fcamera%403c)%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EJust%20to%20check%20if%20the%20mipis%20are%20fine%2C%20I%20started%20a%20gstreamer%20pipeline%20and%20managed%20to%20get%20a%20stable%2030fps%20stream%20on%20both%20cameras.%20I%20also%20managed%20to%20take%20snapshots%20with%20v4l2-ctl.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ENow%2C%20I'd%20like%20to%20test%20the%20Aquila's%20ISP%20with%20my%20cameras%20to%20see%20what%20it%20can%20do.%3C%2FP%3E%3CP%3EFollowing%20the%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FUG10215.pdf%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FUG10215.pdf%3C%2FA%3E%26nbsp%3BI%20added%20the%20environment%20variable%20%3A%3C%2FP%3E%3CPRE%3Eroot%40imx95-1%3A~%23%20export%20LIBCAMERA_PIPELINES_MATCH_LIST%3D'nxp%2Fneo'%3C%2FPRE%3E%3CP%3EBut%2C%20doing%20so%2C%20the%20camera%20is%20not%20detected%20anymore%20by%20libcamera%20and%20I%20don't%20know%20why%20%3A%3C%2FP%3E%3CPRE%3Eroot%40imx95-1%3A~%23%20cam%20-l%3CBR%20%2F%3E%5B17%3A36%3A38.947430563%5D%20%5B2788%5D%20INFO%20Camera%20camera_manager.cpp%3A327%20libcamera%20v0.4.0%2Bdirty%20(2026-06-03T11%3A26%3A44UTC)%3CBR%20%2F%3EAvailable%20cameras%3A%3CBR%20%2F%3Eroot%40imx95-1%3A~%23%20%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EThank%20you%20for%20your%20reply%20!%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ECordially%2C%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2398573%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2398573%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EAfter%20looking%20at%20your%20logs%2C%20I%20believe%20the%20issue%20is%20not%20related%20to%20the%20MIPI%20interfaces%20or%20the%20OV5640%20driver%20itself.%3C%2FP%3E%0A%3CP%3EThe%20fact%20that%3A%3C%2FP%3E%0A%3CUL%20class%3D%22alternate%22%20type%3D%22square%22%3E%0A%3CLI%3Eboth%20OV5640%20cameras%20are%20detected%20by%20libcamera%3C%2FLI%3E%0A%3CLI%3EGStreamer%20can%20stream%20at%2030%20fps%3C%2FLI%3E%0A%3CLI%3Ev4l2-ctl%20can%20capture%20images%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3Eindicates%20that%20the%20sensor%20drivers%2C%20I2C%20communication%2C%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CA%20class%3D%22issue-link%22%20title%3D%22update%20all%20signs%20in%20coridors%22%20href%3D%22https%3A%2F%2Fjira.sw.nxp.com%2Fbrowse%2FCSI-2%22%20data-issue-key%3D%22CSI-2%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3C%2FA%3E%3CDEL%3E%3CA%20class%3D%22issue-link%22%20title%3D%22update%20all%20signs%20in%20coridors%22%20href%3D%22https%3A%2F%2Fjira.sw.nxp.com%2Fbrowse%2FCSI-2%22%20data-issue-key%3D%22CSI-2%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3ECSI-2%3C%2FA%3E%3C%2FDEL%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Elinks%20and%20media%20topology%20are%20all%20working%20correctly.%3C%2FP%3E%0A%3CP%3EThe%20key%20point%20is%20that%20the%20NXP%20Neo%20ISP%20pipeline%20expects%20a%20RAW%20Bayer%20sensor%20input.%3C%2FP%3E%0A%3CP%3EOV5640%20is%20a%20SoC%20image%20sensor%20with%20its%20own%20internal%20image%20processing%20pipeline%2C%20and%20in%20the%20NXP%20BSP%20it%20is%20typically%20used%20in%20YUV%20output%20mode%20(for%20example%20YUV422)%20rather%20than%20as%20a%20RAW%20Bayer%20sensor.%20In%20such%20a%20configuration%2C%20the%20camera%20can%20be%20used%20through%20the%20standard%20V4L2%2Flibcamera%20pipeline%2C%20but%20it%20does%20not%20match%20the%20requirements%20of%20the%20Neo%20ISP%20pipeline.%3C%2FP%3E%0A%3CP%3EThis%20would%20explain%20why%3A%3C%2FP%3E%0A%3CUL%20class%3D%22alternate%22%20type%3D%22square%22%3E%0A%3CLI%3E%60cam%20-l%60%20shows%20both%20OV5640%20cameras%20by%20default%3C%2FLI%3E%0A%3CLI%3Eafter%20setting%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3Eexport%20LIBCAMERA_PIPELINES_MATCH_LIST%3D'nxp%2Fneo'%3C%2FP%3E%0A%3CP%3Eno%20cameras%20are%20detected%20anymore%3C%2FP%3E%0A%3CP%3EThe%20cameras%20are%20still%20present%20in%20the%20system%2C%20but%20the%20NEO%20pipeline%20handler%20cannot%20find%20a%20compatible%20camera%20topology%20and%20therefore%20exposes%20zero%20cameras%20to%20libcamera.%3C%2FP%3E%0A%3CP%3ETo%20verify%20the%20actual%20sensor%20output%20format%2C%20could%20you%20please%20provide%20the%20outputs%20of%3A%3C%2FP%3E%0A%3CP%3E%60%60%60bash%3CBR%20%2F%3Emedia-ctl%20-p%3CBR%20%2F%3Ev4l2-ctl%20--list-formats-ext%3CBR%20%2F%3EWe%20are%20particularly%20interested%20in%20whether%20the%20sensor%20exposes%20any%20RAW%20Bayer%20formats%20such%20as%3A%3CBR%20%2F%3ESBGGR8%3CBR%20%2F%3ESBGGR10%3CBR%20%2F%3ESRGGB10%3CBR%20%2F%3ERG10%3CBR%20%2F%3EBA10%3CBR%20%2F%3EIf%20only%20YUV%20formats%20(for%20example%20YUYV%2FUYVY)%20are%20available%2C%20then%20the%20camera%20is%20not%20operating%20in%20RAW%20mode%20and%20cannot%20be%20processed%20by%20the%20Neo%20ISP%20pipeline.%3CBR%20%2F%3EAlthough%20the%20OV5640%20hardware%20is%20capable%20of%20RAW%20Bayer%20output%2C%20RAW%20support%20is%20not%20commonly%20enabled%20in%20BSP%20camera%20drivers%2C%20and%20the%20NXP%20Neo%20ISP%20stack%20also%20relies%20on%20sensor-specific%20tuning%20data.%20Even%20if%20RAW%20output%20can%20be%20enabled%2C%20the%20absence%20of%20a%20dedicated%20OV5640%20tuning%20profile%20may%20prevent%20proper%20ISP%20operation%20(AE%2FAWB%2Fimage%20quality%20tuning).%3CBR%20%2F%3EIf%20your%20goal%20is%20to%20evaluate%20the%20Neo%20ISP%20framework%20itself%2C%20it%20may%20be%20easier%20to%20use%20a%20sensor%20that%20is%20known%20to%20work%20with%20the%20NXP%20ISP%20stack.%20Common%20candidates%20include%3A%3C%2FP%3E%0A%3CP%3EOS08A20%3CBR%20%2F%3EOX03C10%3CBR%20%2F%3EOX05B1S%3CBR%20%2F%3EAR0521%3CBR%20%2F%3EAR1335%20(may%20require%20additional%20tuning%20work)%3C%2FP%3E%0A%3CP%3ECould%20you%20share%20the%20output%20of%20the%20commands%20above%3F%20That%20will%20allow%20us%20to%20confirm%20whether%20the%20current%20OV5640%20configuration%20is%20exposing%20RAW%20Bayer%20formats%20to%20the%20system.%3CBR%20%2F%3EBest%20regards%2C%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2398346%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2398346%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%3E%3CP%3EThanks%20for%20the%20reply.%3C%2FP%3E%3CP%3EI%20did%20some%20additional%20checks%3A%3C%2FP%3E%3CUL%3E%3CLI%3EYou%20were%20right%20and%20the%20OV5640%20was%20initially%20running%20in%20%3CSTRONG%3EUYVY%20mode%3C%2FSTRONG%3E%2C%20but%20I%20manually%20switched%20one%20sensor%20to%20%3CSTRONG%3ERAW%20Bayer%20(SRGGB8)%3C%2FSTRONG%3E.%3C%2FLI%3E%3CLI%3Emedia-ctl%20-p%20now%20shows%3A%3C%2FLI%3E%3C%2FUL%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Eroot%40imx95-1%3A~%23%20media-ctl%20-p%0AMedia%20controller%20API%20version%206.12.55%0A%0AMedia%20device%20information%0A------------------------%0Adriver%20%20%20%20%20%20%20%20%20%20mxc-isi%0Amodel%20%20%20%20%20%20%20%20%20%20%20FSL%20Capture%20Media%20Device%0Aserial%20%20%20%20%20%20%20%20%20%20%0Abus%20info%20%20%20%20%20%20%20%20platform%3A4ad50000.isi%0Ahw%20revision%20%20%20%20%200x0%0Adriver%20version%20%206.12.55%0A%0ADevice%20topology%0A-%20entity%201%3A%20crossbar%20(13%20pads%2C%2011%20links%2C%208%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev0%0A%09routes%3A%0A%09%092%2F0%20-%26gt%3B%205%2F0%20%5BACTIVE%5D%0A%09%093%2F0%20-%26gt%3B%206%2F0%20%5BACTIVE%5D%0A%09%092%2F0%20-%26gt%3B%207%2F0%20%5BACTIVE%5D%0A%09%093%2F0%20-%26gt%3B%208%2F0%20%5BACTIVE%5D%0A%09%092%2F0%20-%26gt%3B%209%2F0%20%5BACTIVE%5D%0A%09%093%2F0%20-%26gt%3B%2010%2F0%20%5BACTIVE%5D%0A%09%092%2F0%20-%26gt%3B%2011%2F0%20%5BACTIVE%5D%0A%09%093%2F0%20-%26gt%3B%2012%2F0%20%5BACTIVE%5D%0A%09pad0%3A%20SINK%2CMUST_CONNECT%0A%09pad1%3A%20SINK%2CMUST_CONNECT%0A%09pad2%3A%20SINK%2CMUST_CONNECT%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20field%3Anone%5D%0A%09%09%26lt%3B-%20%224ac10000.syscon%3Aformatter%4020%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad3%3A%20SINK%2CMUST_CONNECT%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09%26lt%3B-%20%224ac10000.syscon%3Aformatter%40120%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad4%3A%20SINK%2CMUST_CONNECT%0A%09%09%26lt%3B-%20%22mxc_isi.output%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad5%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.0%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad6%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.1%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad7%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.2%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad8%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.3%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad9%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.4%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad10%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.5%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad11%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.6%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad12%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22mxc_isi.7%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2015%3A%20mxc_isi.0%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev1%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A5%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.0.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2018%3A%20mxc_isi.0.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo2%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.0%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2026%3A%20mxc_isi.1%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev2%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A6%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.1.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2029%3A%20mxc_isi.1.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo3%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.1%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2037%3A%20mxc_isi.2%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev3%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A7%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.2.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2040%3A%20mxc_isi.2.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo4%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.2%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2048%3A%20mxc_isi.3%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev4%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A8%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.3.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2051%3A%20mxc_isi.3.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo5%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.3%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2059%3A%20mxc_isi.4%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev5%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A9%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.4.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2062%3A%20mxc_isi.4.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo6%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.4%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2070%3A%20mxc_isi.5%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev6%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A10%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.5.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2073%3A%20mxc_isi.5.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo7%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.5%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2081%3A%20mxc_isi.6%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev7%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A11%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.6.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2084%3A%20mxc_isi.6.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo8%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.6%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2092%3A%20mxc_isi.7%20(2%20pads%2C%202%20links%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev8%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20compose.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20compose%3A(0%2C0)%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22crossbar%22%3A12%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AYUV8_1X24%2F1920x1080%20field%3Anone%20colorspace%3Ajpeg%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F1920x1080%0A%09%09%20crop%3A(0%2C0)%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22mxc_isi.7.capture%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%2095%3A%20mxc_isi.7.capture%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fvideo9%0A%09pad0%3A%20SINK%0A%09%09%26lt%3B-%20%22mxc_isi.7%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20103%3A%20mxc_isi.output%20(1%20pad%2C%201%20link)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20Node%20subtype%20V4L%20flags%200%0A%09pad0%3A%20SOURCE%0A%09%09-%26gt%3B%20%22crossbar%22%3A4%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20110%3A%204ac10000.syscon%3Aformatter%40120%20(2%20pads%2C%202%20links%2C%201%20route)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev9%0A%09routes%3A%0A%09%090%2F0%20-%26gt%3B%201%2F0%20%5BACTIVE%5D%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09%26lt%3B-%20%22csidev-4ad40000.csi%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%22crossbar%22%3A3%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20115%3A%204ac10000.syscon%3Aformatter%4020%20(2%20pads%2C%202%20links%2C%201%20route)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev10%0A%09routes%3A%0A%09%090%2F0%20-%26gt%3B%201%2F0%20%5BACTIVE%5D%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%5D%0A%09%09%26lt%3B-%20%22csidev-4ad30000.csi%22%3A1%20%5BENABLED%2CIMMUTABLE%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%5D%0A%09%09-%26gt%3B%20%22crossbar%22%3A2%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20120%3A%20csidev-4ad30000.csi%20(2%20pads%2C%202%20links%2C%201%20route)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev11%0A%09routes%3A%0A%09%090%2F0%20-%26gt%3B%201%2F0%20%5BACTIVE%5D%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20colorspace%3Asrgb%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%5D%0A%09%09%26lt%3B-%20%22ov5640%204-003c%22%3A0%20%5BENABLED%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%20colorspace%3Asrgb%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%5D%0A%09%09-%26gt%3B%20%224ac10000.syscon%3Aformatter%4020%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20125%3A%20csidev-4ad40000.csi%20(2%20pads%2C%202%20links%2C%201%20route)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Unknown%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev12%0A%09routes%3A%0A%09%090%2F0%20-%26gt%3B%201%2F0%20%5BACTIVE%5D%0A%09pad0%3A%20SINK%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09%26lt%3B-%20%22ov5640%203-003c%22%3A0%20%5BENABLED%5D%0A%09pad1%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%20field%3Anone%5D%0A%09%09-%26gt%3B%20%224ac10000.syscon%3Aformatter%40120%22%3A0%20%5BENABLED%2CIMMUTABLE%5D%0A%0A-%20entity%20130%3A%20ov5640%204-003c%20(1%20pad%2C%201%20link%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Sensor%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev13%0A%09pad0%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3ASRGGB8_1X8%2F1920x1080%401%2F30%20colorspace%3Asrgb%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F2624x1964%0A%09%09%20crop%3A(336%2C434)%2F1952x1088%5D%0A%09%09-%26gt%3B%20%22csidev-4ad30000.csi%22%3A0%20%5BENABLED%5D%0A%0A-%20entity%20134%3A%20ov5640%203-003c%20(1%20pad%2C%201%20link%2C%200%20routes)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%20V4L2%20subdev%20subtype%20Sensor%20flags%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20device%20node%20name%20%2Fdev%2Fv4l-subdev14%0A%09pad0%3A%20SOURCE%0A%09%09%5Bstream%3A0%20fmt%3AUYVY8_1X16%2F1920x1080%401%2F30%20field%3Anone%20colorspace%3Asrgb%20xfer%3Asrgb%20ycbcr%3A601%20quantization%3Afull-range%0A%09%09%20crop.bounds%3A(0%2C0)%2F2624x1964%0A%09%09%20crop%3A(336%2C434)%2F1952x1088%5D%0A%09%09-%26gt%3B%20%22csidev-4ad40000.csi%22%3A0%20%5BENABLED%5D%3C%2FCODE%3E%3C%2FPRE%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CP%3E%3CSTRONG%3E%3CEM%3E(The%20second%20OV5640%20remains%20in%20UYVY%20mode%20for%20comparison)%3C%2FEM%3E%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3ESo%20%3A%3C%2FDIV%3E%3CUL%3E%3CLI%3EOV5640%20-%26gt%3B%20SRGGB8%3C%2FLI%3E%3CLI%3ECSI%20-%26gt%3B%20SRGGB8%3C%2FLI%3E%3CLI%3EFormatter%20-%26gt%3B%20SRGGB8%3C%2FLI%3E%3CLI%3ECrossbar%20-%26gt%3B%20SRGGB8%3C%2FLI%3E%3C%2FUL%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3D%26gt%3B%20RAW%20Bayer%20is%20successfully%20propagated%20through%20the%20sensor%2C%20CSI%20and%20formatter.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThe%20neoisp%20kernel%20module%20is%20loaded%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Eroot%40imx95-1%3A~%23%20modprobe%20neoisp%0Aroot%40imx95-1%3A~%23%20lsmod%20%7C%20grep%20-i%20isp%0Aneoisp%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2069632%20%200%3C%2FCODE%3E%3C%2FPRE%3E%3CDIV%3E%3CP%3EAn%20ISP%20node%20is%20present%20in%20the%20running%20device%20tree%3A%3C%2FP%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%2Fsys%2Ffirmware%2Fdevicetree%2Fbase%2Fsoc%2Fisp%404ae00000%3C%2FCODE%3E%3C%2FPRE%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CP%3E%3D%26gt%3B%20However%2C%20I%20only%20see%20a%20single%20media%20device%20(%2Fdev%2Fmedia0)%20exposing%20the%20CSI%2FFormatter%2FISI%20pipeline.%20No%20neoisp%20entity%20appears%20in%20the%20media%20graph.%26nbsp%3BI%20do%20not%20see%20any%20neoisp%20entity%20in%20the%20media%20graph%2C%20and%20I%20do%20not%20know%20whether%20this%20is%20expected.%3C%2FP%3E%3CP%3E%3D%26gt%3B%20cam%20-l%20(libcamera)%20still%20returns%20no%20available%20cameras.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EAt%20this%20point%20the%20RAW%20Bayer%20path%20appears%20functional%2C%20but%20I%20cannot%20identify%20where%20the%20Neo%20ISP%20becomes%20part%20of%20the%20active%20pipeline.%3C%2FP%3E%3CDIV%3E%3CDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EHow%20can%20I%20verify%20that%20the%20stream%20is%20actually%20processed%20by%20the%20Neo%20ISP%20rather%20than%20simply%20following%20the%20CSI%20-%26gt%3B%20Formatter%20-%26gt%3B%20ISI%20path%3F%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3EAlso%2C%20is%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FUG10215.pdf%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FUG10215.pdf%3C%2FA%3E%26nbsp%3Bstill%20the%20recommended%20guide%20for%20this%20setup%2C%20or%20is%20there%20a%20more%20specific%20reference%20for%20OV5640%20%2B%20Neo%20ISP%20on%20i.MX95%3F%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3ECordially%2C%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2398211%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2398211%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EMy%20current%20suspicion%20is%20that%20one%20of%20the%20following%20is%20happening%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%3CSTRONG%3EOV5640%20is%20running%20in%20YUV%20mode%20rather%20than%20RAW%20Bayer%20mode%3C%2FSTRONG%3E%20(most%20likely).%3C%2FLI%3E%0A%3CLI%3EThe%20%3CSTRONG%3Ecamera%20DT%20overlay%20is%20not%20the%20ISP-enabled%20variant%3C%2FSTRONG%3E.%3C%2FLI%3E%0A%3CLI%3EThe%20%3CSTRONG%3ENeo%20IPA%2Fcalibration%20components%20are%20missing%3C%2FSTRONG%3E%20from%20the%20root%20filesystem.%3C%2FLI%3E%0A%3CLI%3EThe%20media%20topology%20seen%20by%20the%20Neo%20pipeline%20does%20not%20match%20the%20expected%20i.MX95%20ISP%20graph.%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3EThe%20media-ctl%20-p%20output%20will%20usually%20pinpoint%20which%20of%20these%20is%20the%20actual%20issue.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2399150%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399150%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20!%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EHere%20is%20the%20output%20%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Eroot%40imx95-1%3A~%23%20v4l2-ctl%20--list-formats-ext%20-d%20%2Fdev%2Fvideo2%0Aioctl%3A%20VIDIOC_ENUM_FMT%0A%09Type%3A%20Video%20Capture%20Multiplanar%0A%0A%0A%09%5B0%5D%3A%20'YUYV'%20(YUYV%204%3A2%3A2%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B1%5D%3A%20'YUVA'%20(32-bit%20YUVA%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B2%5D%3A%20'NV12'%20(Y%2FUV%204%3A2%3A0%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%202x2%20-%204096x8190%20with%20step%202%2F2%0A%09%5B3%5D%3A%20'NM12'%20(Y%2FUV%204%3A2%3A0%20(N-C)%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%202x2%20-%204096x8190%20with%20step%202%2F2%0A%09%5B4%5D%3A%20'NV16'%20(Y%2FUV%204%3A2%3A2%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%202x1%20-%204096x8191%20with%20step%202%2F1%0A%09%5B5%5D%3A%20'NM16'%20(Y%2FUV%204%3A2%3A2%20(N-C)%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%202x1%20-%204096x8191%20with%20step%202%2F1%0A%09%5B6%5D%3A%20'YM24'%20(Planar%20YUV%204%3A4%3A4%20(N-C)%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B7%5D%3A%20'RGBP'%20(16-bit%20RGB%205-6-5%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B8%5D%3A%20'RGB3'%20(24-bit%20RGB%208-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B9%5D%3A%20'BGR3'%20(24-bit%20BGR%208-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B10%5D%3A%20'XR24'%20(32-bit%20BGRX%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B11%5D%3A%20'AR24'%20(32-bit%20BGRA%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B12%5D%3A%20'RA24'%20(32-bit%20ABGR%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B13%5D%3A%20'AB24'%20(32-bit%20RGBA%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B14%5D%3A%20'RX24'%20(32-bit%20XBGR%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B15%5D%3A%20'XB24'%20(32-bit%20RGBX%208-8-8-8%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B16%5D%3A%20'AR30'%20(32-bit%20ARGB%202-10-10-10%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B17%5D%3A%20'GREY'%20(8-bit%20Greyscale%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B18%5D%3A%20'Y10%20'%20(10-bit%20Greyscale%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B19%5D%3A%20'Y12%20'%20(12-bit%20Greyscale%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B20%5D%3A%20'Y14%20'%20(14-bit%20Greyscale%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B21%5D%3A%20'BA81'%20(8-bit%20Bayer%20BGBG%2FGRGR%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B22%5D%3A%20'GBRG'%20(8-bit%20Bayer%20GBGB%2FRGRG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B23%5D%3A%20'GRBG'%20(8-bit%20Bayer%20GRGR%2FBGBG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B24%5D%3A%20'RGGB'%20(8-bit%20Bayer%20RGRG%2FGBGB%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B25%5D%3A%20'BG10'%20(10-bit%20Bayer%20BGBG%2FGRGR%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B26%5D%3A%20'GB10'%20(10-bit%20Bayer%20GBGB%2FRGRG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B27%5D%3A%20'BA10'%20(10-bit%20Bayer%20GRGR%2FBGBG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B28%5D%3A%20'RG10'%20(10-bit%20Bayer%20RGRG%2FGBGB%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B29%5D%3A%20'BG12'%20(12-bit%20Bayer%20BGBG%2FGRGR%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B30%5D%3A%20'GB12'%20(12-bit%20Bayer%20GBGB%2FRGRG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B31%5D%3A%20'BA12'%20(12-bit%20Bayer%20GRGR%2FBGBG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B32%5D%3A%20'RG12'%20(12-bit%20Bayer%20RGRG%2FGBGB%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B33%5D%3A%20'BG14'%20(14-bit%20Bayer%20BGBG%2FGRGR%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B34%5D%3A%20'GB14'%20(14-bit%20Bayer%20GBGB%2FRGRG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B35%5D%3A%20'GR14'%20(14-bit%20Bayer%20GRGR%2FBGBG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B36%5D%3A%20'RG14'%20(14-bit%20Bayer%20RGRG%2FGBGB%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B37%5D%3A%20'BYR2'%20(16-bit%20Bayer%20BGBG%2FGRGR%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B38%5D%3A%20'GB16'%20(16-bit%20Bayer%20GBGB%2FRGRG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B39%5D%3A%20'GR16'%20(16-bit%20Bayer%20GRGR%2FBGBG%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B40%5D%3A%20'RG16'%20(16-bit%20Bayer%20RGRG%2FGBGB%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%0A%09%5B41%5D%3A%20'MJPG'%20(Motion-JPEG%2C%20compressed%2C%20csc-colorspace%2C%20csc-ycbcr%2C%20csc-quantization%2C%20csc-xfer-func)%0A%09%09Size%3A%20Stepwise%201x1%20-%204096x8191%20with%20step%201%2F1%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EIf%20I%20read%20it%20correctly%2C%20camera%20does%20take%20raw%20bayer%2C%20and%20I%20configured%20it%20to%20aswell%20(hopefully%20I%20did%20it%20correctly).%3C%2FP%3E%3CP%3EI'll%20try%20to%20flash%20again%20with%20another%20image%20to%20see%20if%20the%20issue%20is%20somewhere%20around%20there.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ECordially%2C%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2399374%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399374%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThank%20you%20for%20the%20update.%20The%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Ev4l2-ctl%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eoutput%20confirms%20that%20the%20ISI%20capture%20node%20supports%20RAW%20Bayer%20formats%2C%20and%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Emedia-ctl%20-p%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eoutput%20from%20your%20previous%20message%20already%20shows%20that%20the%20RAW%20Bayer%20path%20is%20correctly%20propagated%20through%20the%20pipeline%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22code%20panel%22%3E%0A%3CDIV%20class%3D%22codeContent%20panelContent%22%3E%0A%3CPRE%20class%3D%22code-java%22%3EOV5640%20(SRGGB8)%20-%26gt%3B%20CSI%20(SRGGB8)%20-%26gt%3B%20Formatter%20(SRGGB8)%20-%26gt%3B%20Crossbar%20(SRGGB8)%0A%3C%2FPRE%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CP%3ESo%20the%20sensor-side%20configuration%20looks%20correct.%3C%2FP%3E%0A%3CP%3EThe%20core%20issue%20now%20is%20that%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Eneoisp%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Emodule%20is%20loaded%20but%20does%20not%20appear%20in%20the%20media%20graph%2C%20and%20no%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3E%2Fdev%2Fmedia1%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eis%20created.%20This%20typically%20indicates%20that%20the%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Eneoisp%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Edriver%20loaded%20successfully%20as%20a%20kernel%20module%20but%20failed%20during%20device%20probe%2C%20which%20would%20prevent%20it%20from%20registering%20a%20media%20device.%3C%2FP%3E%0A%3CP%3ECould%20you%20please%20provide%20the%20following%20diagnostic%20information%3A%3C%2FP%3E%0A%3CDIV%20class%3D%22code%20panel%22%3E%0A%3CDIV%20class%3D%22codeContent%20panelContent%22%3E%0A%3CPRE%20class%3D%22code-bash%22%3E%3CSPAN%20class%3D%22code-comment%22%3E%23%20Check%20neoisp%20probe%20status%0A%3C%2FSPAN%3Edmesg%20%7C%20grep%20-i%20neoisp%0Admesg%20%7C%20grep%20-i%20%3CSPAN%20class%3D%22code-quote-red%22%3E%22isp%404ae%22%3C%2FSPAN%3E%0Admesg%20%7C%20grep%20-i%20%3CSPAN%20class%3D%22code-quote-red%22%3E%22probe%20failed%22%3C%2FSPAN%3E%0Admesg%20%7C%20grep%20-i%20%3CSPAN%20class%3D%22code-quote-red%22%3E%224ae00000%22%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22code-comment%22%3E%23%20Confirm%20all%20available%20media%20devices%0A%3C%2FSPAN%3Els%20-la%20%2Fdev%2Fmedia*%0A%0A%3CSPAN%20class%3D%22code-comment%22%3E%23%20Check%20neoisp%20status%20%3CSPAN%20class%3D%22code-object%22%3Ein%3C%2FSPAN%3E%20sysfs%0A%3C%2FSPAN%3Els%20%2Fsys%2Fbus%2Fplatform%2Fdrivers%2Fnxp-neoisp%2F%0Acat%20%2Fsys%2Ffirmware%2Fdevicetree%2Fbase%2Fsoc%2Fisp%404ae00000%2Fstatus%0A%3C%2FPRE%3E%0A%3C%2FDIV%3E%0A%3C%2FDIV%3E%0A%3CP%3EIn%20parallel%2C%20we%20would%20also%20like%20to%20ask%3A%20do%20you%20have%20access%20to%20any%20of%20the%20following%20sensors%20that%20are%20officially%20supported%20by%20the%20NXP%20Neo%20ISP%20stack%20with%20complete%20tuning%20profiles%3F%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EOS08A20%3C%2FLI%3E%0A%3CLI%3EOX03C10%3C%2FLI%3E%0A%3CLI%3EOX05B1S%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ETesting%20with%20one%20of%20these%20sensors%20would%20allow%20us%20to%20quickly%20verify%20whether%20the%20Neo%20ISP%20driver%20itself%20is%20functioning%20correctly%20in%20your%20environment%2C%20and%20help%20isolate%20whether%20the%20issue%20is%20driver%2Fenvironment-related%20or%20specific%20to%20the%20OV5640%20configuration.%3C%2FP%3E%0A%3CP%3ENote%20that%20while%20OV5640%20is%20capable%20of%20RAW%20Bayer%20output%2C%20it%20does%20not%20have%20an%20official%20NXP%20Neo%20ISP%20tuning%20profile%2C%20which%20means%20even%20if%20the%20pipeline%20is%20connected%20correctly%2C%20AE%2FAWB%20and%20image%20quality%20tuning%20will%20not%20be%20available.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2399489%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399489%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ESome%20update%3A%3CBR%20%2F%3EWe%20checked%20this%20internally%20and%20would%20like%20to%20share%20the%20following%20observations%20regarding%20OV5640%20and%20the%20i.MX95%20Neo%20ISP%20pipeline.%3CBR%20%2F%3EAlthough%20the%20OV5640%20is%20capable%20of%20outputting%20RAW%20Bayer%20data%2C%20we%20generally%20do%20not%20recommend%20the%20OV5640%20%2B%20Neo%20ISP%20combination%20for%20new%20designs%20for%20the%20following%20reasons%3A%3C%2FP%3E%0A%3CP%3EOV5640%20is%20already%20an%20end-of-life%20(EOL)%20sensor.%3CBR%20%2F%3EAlthough%20RAW%20output%20is%20supported%2C%20the%20sensor%20itself%20provides%20only%20limited%20tunable%20controls%20compared%20to%20more%20recent%20RAW%20sensors.%3CBR%20%2F%3ENXP's%20i.MX95%20reference%20camera%20solution%20is%20based%20on%20RAW%20sensors%20such%20as%20OS08A20%2C%20which%20are%20already%20supported%20and%20validated%20within%20the%20Neo%20ISP%20software%20framework.%3C%2FP%3E%0A%3CP%3ETherefore%2C%20our%20recommendation%20would%20be%20one%20of%20the%20following%3A%3C%2FP%3E%0A%3CP%3EUse%20OV5640%20together%20with%20its%20existing%20image%20processing%20path%20(without%20relying%20on%20Neo%20ISP%20AE%2FAWB%20tuning%20functionality).%3CBR%20%2F%3EUse%20an%20NXP-supported%20RAW%20sensor%20such%20as%20OS08A20%20if%20full%20Neo%20ISP%20functionality%20is%20required.%3CBR%20%2F%3EIf%20OV5640%20must%20be%20used%20with%20the%20Neo%20ISP%20pipeline%2C%20additional%20software%20enablement%20work%20will%20be%20required.%3C%2FP%3E%0A%3CP%3EFor%20the%20OV5640%20%2B%20Neo%20ISP%20approach%2C%20a%20libcamera%20CameraHelper%20needs%20to%20be%20implemented.%20The%20following%20file%20can%20be%20used%20as%20a%20starting%20reference%3A%3CBR%20%2F%3Ecamera_helper_ov5640.cpp%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flibcamera%2Fblob%2Flf-6.6.52_2.2.0%2Fsrc%2Fipa%2Fnxp%2Fcam_helper%2Fcamera_helper_ov5640.cpp%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flibcamera%2Fblob%2Flf-6.6.52_2.2.0%2Fsrc%2Fipa%2Fnxp%2Fcam_helper%2Fcamera_helper_ov5640.cpp%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EPlease%20note%20that%20this%20CameraHelper%20implementation%20is%20only%20the%20first%20step.%20Its%20primary%20purpose%20is%20to%20allow%20libcamera%20to%20recognize%20and%20identify%20the%20OV5640%20sensor.%20Additional%20sensor-specific%20adaptation%20is%20still%20required.%3CBR%20%2F%3EFor%20example%2C%20if%20Neo%20ISP%20Auto%20Exposure%20(AE)%20is%20expected%20to%20work%2C%20APIs%20such%20as%20the%20sensor%20gain%20conversion%20functions%20need%20to%20be%20implemented.%20A%20simple%20example%20can%20be%20found%20in%20the%20IMX219%20CameraHelper%20implementation%3A%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flibcamera%2Fblob%2Flf-6.18.20_2.0.0%2Fsrc%2Fipa%2Fnxp%2Fcam_helper%2Fcamera_helper_imx219.cpp%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flibcamera%2Fblob%2Flf-6.18.20_2.0.0%2Fsrc%2Fipa%2Fnxp%2Fcam_helper%2Fcamera_helper_imx219.cpp%3C%2FA%3E%3CBR%20%2F%3EIn%20particular%2C%20the%20customer%20would%20need%20to%20determine%20and%20implement%20the%20mapping%20between%3A%3C%2FP%3E%0A%3CP%3ESensor%20gain%20code%3CBR%20%2F%3EReal%20analog%20gain%20multiplier%20(gain%20value)%3C%2FP%3E%0A%3CP%3Eso%20that%20the%20Neo%20ISP%20AE%20algorithm%20can%20correctly%20control%20the%20sensor%20exposure%20and%20gain.%3CBR%20%2F%3EFor%20CameraHelper%20development%20details%2C%20please%20refer%20to%20the%20Camera%20Porting%20Guide%3A%3CBR%20%2F%3ESection%205.3%20%E2%80%93%20%22Implementing%20a%20libcamera%20CameraHelper%20for%20a%20new%20sensor%22%3CBR%20%2F%3EOne%20special%20consideration%20for%20OV5640%20is%20that%20it%20already%20contains%20its%20own%20AE%20functionality.%20Therefore%2C%20if%20the%20intention%20is%20to%20continue%20using%20the%20sensor's%20internal%20AE%20instead%20of%20the%20Neo%20ISP%20AE%20algorithm%2C%20implementations%20such%20as%20gainCodeToGain()%20and%20gainToGainCode()%20may%20not%20be%20strictly%20required.%20In%20this%20case%2C%20a%20basic%20CameraHelper%20used%20only%20for%20sensor%20detection%20may%20be%20sufficient%20to%20bring%20up%20the%20pipeline.%3CBR%20%2F%3EHowever%2C%20image%20quality%20tuning%20would%20still%20need%20to%20be%20evaluated%20and%20adjusted.%20Since%20OV5640%20was%20not%20originally%20characterized%20and%20tuned%20as%20a%20Neo%20ISP%20reference%20sensor%2C%20additional%20ISP%20tuning%20work%20may%20be%20required%20to%20achieve%20optimal%20image%20quality.%3C%2FP%3E%0A%3CP%3EOverall%2C%20while%20OV5640%20RAW%20output%20can%20be%20connected%20to%20the%20i.MX95%20Neo%20ISP%20pipeline%2C%20some%20sensor-specific%20libcamera%20and%20ISP%20integration%20work%20is%20expected.%20For%20new%20developments%2C%20we%20would%20recommend%20using%20a%20Neo%20ISP%20validated%20RAW%20sensor%20such%20as%20OS08A20%20whenever%20possible.%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2399849%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IMX95%20Aquila%20ISP%20usage%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399849%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EFollowing%20up%20on%20our%20previous%20discussion%2C%20we%20have%20investigated%20the%20root%20cause%20of%20the%20Neo%20ISP%20pipeline%20not%20recognizing%20the%20OV5640%20sensor.%3C%2FP%3E%0A%3CP%3EThe%20issue%20is%20that%20the%20NXP%20Neo%20IPA%20(Image%20Processing%20Algorithm)%20framework%20uses%20a%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3ECameraHelper%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Efactory%20to%20look%20up%20sensor-specific%20gain%2Fexposure%20algorithms%20by%20matching%20the%20kernel%20V4L2%20subdev%20model%20string.%20Since%20no%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3ECameraHelper%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Ewas%20registered%20for%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3E%22ov5640%22%3C%2FTT%3E%2C%20the%20factory%20returned%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Enullptr%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eand%20the%20ISP%20pipeline%20could%20not%20be%20configured%20for%20this%20sensor.%3C%2FP%3E%0A%3CP%3ETo%20address%20this%2C%20we%20have%20implemented%20a%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3ECameraHelper%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Efor%20the%20OV5640%20sensor%20based%20on%20the%20in-tree%20NXP%20kernel%20driver%20(%3CTT%3Edrivers%2Fmedia%2Fi2c%2Fov5640.c%3C%2FTT%3E%3CLI-EMOJI%20id%3D%22lia_disappointed-face%22%20title%3D%22%3Adisappointed_face%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EGain%20register%20mapping%3A%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ERegister%3A%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3EOV5640_REG_AEC_PK_REAL_GAIN%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E(%3CTT%3E0x350a%3C%2FTT%3E)%2C%2010-bit%20value%3C%2FLI%3E%0A%3CLI%3EFormat%3A%20Q6.4%20fixed%20point%2C%20unity%20gain%20%3D%2016%3C%2FLI%3E%0A%3CLI%3E%3CTT%3EgainCode(g)%20%3D%20round(g%20*%2016)%3C%2FTT%3E%3C%2FLI%3E%0A%3CLI%3E%3CTT%3Egain(code)%20%3D%20code%20%2F%2016.0%3C%2FTT%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3ETwo%20files%20have%20been%20modified%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%3CTT%3Ecamera_helper_ov5640.cpp%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%E2%80%93%20new%20CameraHelper%20implementation%20for%20OV5640%2C%20registered%20as%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3E%22ov5640%22%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eto%20match%20the%20kernel%20subdev%20model%20string%3C%2FLI%3E%0A%3CLI%3E%3CTT%3Emeson.build%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%E2%80%93%20added%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3Ecamera_helper_ov5640.cpp%3C%2FTT%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3Eto%20the%20build%20source%20list%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3EPlease%20rebuild%20libcamera%20with%20these%20two%20files%20and%20retry%20with%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3CTT%3ELIBCAMERA_PIPELINES_MATCH_LIST%3D'nxp%2Fneo'%3C%2FTT%3E.%20The%20Neo%20ISP%20pipeline%20should%20now%20be%20able%20to%20find%20and%20configure%20the%20OV5640%20sensor.%3C%2FP%3E%0A%3CP%3ENote%20that%20while%20this%20enables%20the%20gain%2Fexposure%20control%20path%2C%20a%20full%20ISP%20tuning%20profile%20(AE%2FAWB%20parameters)%20for%20OV5640%20is%20not%20yet%20available.%20Image%20quality%20tuning%20may%20still%20require%20further%20work.%3C%2FP%3E%0A%3CP%3EPlease%20let%20us%20know%20the%20results%20after%20rebuilding.%3C%2FP%3E%3C%2FLINGO-BODY%3E