Hello @yipingwang
Thank you for your response.
Please find my answers below for your reference.
1. Firmware Location
I tried both the recommended firmware locations as well as each location individually. The camera probe is successful only when using ap1302_ar0144_single_fw.bin.
root@imx93evk:~# ls -la /lib/firmware/ap1302_ar0144_single_fw.bin
-rw-r--r-- 1 root root 80528 Aug 5 15:36 /lib/firmware/ap1302_ar0144_single_fw.bin
root@imx93evk:~# ls -la /lib/firmware/imx/camera/ap1302.fw
-rw-r--r-- 1 root root 80528 Aug 5 15:38 /lib/firmware/imx/camera/ap1302.fw
The AP1302 is detected successfully during boot.
root@imx93evk:~# dmesg | grep -i ap1302
...
[ 9.962705] ap1302 2-003c: AP1302 revision 0.2.6 detected
However, I do not see any firmware loading messages related to AP1302 in the kernel log.
2. Software Environment
I am using the pre-built images provided for the FRDM i.MX93 board.
root@imx93evk:~# cat /proc/device-tree/model
NXP FRDM-IMX93
root@imx93evk:~# cat /proc/cmdline
console=ttyLP0,115200 earlycon root=/dev/mmcblk0p2 rootwait rw
The AP1302 is detected successfully, and the CSI/ISI devices are also present. I have attached the complete logs for your reference.
3. Media Pipeline
The media pipeline appears to be created correctly.
root@imx93evk:~# ls /dev/media0
/dev/media0
root@imx93evk:~# ls /dev/video*
/dev/video0 /dev/video1
The outputs from media-ctl show that the AP1302, CSI, and ISI entities are enabled. The complete media-ctl output is attached for your reference.
4. Additional Information
Please refer to the attached file fourth_point.txt for the requested information.
5. Streaming Failure
I do not see any additional kernel messages when the streaming command fails.
root@imx93evk:~# dmesg -c
root@imx93evk:~# v4l2-ctl -d /dev/video0 --stream-mmap=3 --stream-count=10
VIDIOC_STREAMON returned -1 (Broken pipe)
root@imx93evk:~# dmesg
The dmesg output remains empty after the failure, so there are no additional kernel logs to help identify the root cause.
Since the AP1302 is detected successfully, the media graph is created correctly, and no kernel errors are reported during VIDIOC_STREAMON, could you please suggest what additional checks or debugging steps I should perform to identify why streaming fails with a "Broken pipe" error?
Thank you for your support.
root@imx93evk:~# v4l2-ctl --list-devices
mxc-isi-cap (platform:4ae40000.isi):
/dev/video0
/dev/video1
/dev/media0
root@imx93evk:~# v4l2-ctl -d /dev/video0 --all
Driver Info:
Driver name : mxc-isi
Card type : mxc-isi-cap
Bus info : platform:4ae40000.isi
Driver version : 6.18.2
Capabilities : 0xa4201000
Video Capture Multiplanar
I/O MC
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x24201000
Video Capture Multiplanar
I/O MC
Streaming
Extended Pix Format
Media Driver Info:
Driver name : mxc-isi
Model : FSL Capture Media Device
Serial :
Bus info : platform:4ae40000.isi
Media version : 6.18.2
Hardware revision: 0x00000000 (0)
Driver version : 6.18.2
Interface Info:
ID : 0x0300000a
Type : V4L Video
Entity Info:
ID : 0x00000008 (8)
Name : mxc_isi.0.capture
Function : V4L2 I/O
Pad 0x01000009 : 0: Sink
Link 0x0200000c: from remote pad 0x1000007 of entity 'mxc_isi.0' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (mxc_isi.0.capture: ok)
Format Video Capture Multiplanar:
Width/Height : 1920/1080
Pixel Format : 'YUYV' (YUYV 4:2:2)
Field : None
Number of planes : 1
Flags :
Colorspace : sRGB
Transfer Function : sRGB
YCbCr/HSV Encoding: ITU-R 601
Quantization : Limited Range
Plane 0 :
Bytes per Line : 3840
Size Image : 4147200
User Controls
horizontal_flip 0x00980914 (bool) : default=0 value=0 flags=0x00001000
vertical_flip 0x00980915 (bool) : default=0 value=0 flags=0x00001000
alpha_component 0x00980929 (int) : min=0 max=255 step=1 default=0 value=0 flags=0x00001000
root@imx93evk:~# media-ctl -p
Media controller API version 6.18.2
Media device information
------------------------
driver mxc-isi
model FSL Capture Media Device
serial
bus info platform:4ae40000.isi
hw revision 0x0
driver version 6.18.2
Device topology
- entity 1: crossbar (3 pads, 3 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
routes:
0/0 -> 2/0 [ACTIVE]
pad0: SINK,MUST_CONNECT
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
<- "csidev-4ae00000.csi":1 [ENABLED,IMMUTABLE]
pad1: SINK,MUST_CONNECT
<- "mxc_isi.output":0 [ENABLED,IMMUTABLE]
pad2: SOURCE
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
-> "mxc_isi.0":0 [ENABLED,IMMUTABLE]
- entity 5: 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 colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
compose.bounds:(0,0)/1920x1080
compose:(0,0)/1920x1080]
<- "crossbar":2 [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.0.capture":0 [ENABLED,IMMUTABLE]
- entity 8: mxc_isi.0.capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: SINK
<- "mxc_isi.0":1 [ENABLED,IMMUTABLE]
- entity 16: mxc_isi.output (1 pad, 1 link)
type Node subtype V4L flags 0
pad0: SOURCE
-> "crossbar":1 [ENABLED,IMMUTABLE]
- entity 23: csidev-4ae00000.csi (2 pads, 2 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev2
routes:
0/0 -> 1/0 [ACTIVE]
pad0: SINK
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ap1302 2-003c":2 [ENABLED]
pad1: SOURCE
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "crossbar":0 [ENABLED,IMMUTABLE]
- entity 28: ap1302 2-003c (3 pads, 2 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev4
pad0: SINK
[stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb
crop.bounds:(0,0)/1280x800
crop:(0,0)/1280x800]
<- "ar0144 0":0 [ENABLED,IMMUTABLE]
pad1: SINK
[stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb
crop.bounds:(0,0)/1280x800
crop:(0,0)/1280x800]
pad2: SOURCE
[stream:0 fmt:UYYVYY8_0_5X24/4224x4092 field:none colorspace:srgb
crop.bounds:(0,0)/1280x800
crop:(0,0)/1280x800]
-> "csidev-4ae00000.csi":0 [ENABLED]
- entity 32: ar0144 0 (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev3
pad0: SOURCE
[stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb]
-> "ap1302 2-003c":0 [ENABLED,IMMUTABLE]
Best regards,
Milav