AnsweredAssumed Answered

OV5640 camera mipi does not work on  i.MX 7Dual SABRE Board  

Question asked by gb400 on Nov 2, 2017
Latest reply on Nov 21, 2017 by igorpadykov

I’m trying to work with the OV5640 camera on sabre board NCIMX7SABRE  SCH-28590 REV C

I’ve bought a camera as suggested in https://community.nxp.com/thread/435090

 

I’ve built the kernel and rootfs starting from

repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-morty -m imx-4.9.11-1.0.0_ga.xml

 

I made the following change to select imx7d and add :

machine: imx7dsabresd

image: core-image-base

distro: fsl-frambuffer

kernel: linux-fslc-imx (4.1.38)

The device tree is the original.

 

I’ve also added:

 IMAGE_INSTALL_append = "yavta v4l-utils"

from meta-openembedded/meta-oe/recipes-multimedia/

 

I’ve boot from sdcard.

 

From the  following command the camera seems to be loaded.

root@imx7dsabresd:~# lsmod

Module                            S ize  Used by

ov5640_camera_mipi     16871  1

mx6s_capture                 16548  0

mxc_mipi_csi                  12919  1

evbug                                2130  0

 

I see two v4l2 devices:

V4L2 Output Device on /dev/video0

V4L2 Capture Device on to /dev/video1  (the ov5640 camera)

 

But If I run  the following  yavta cmd I get the error “Unable to start streaming: No buffer space available (105).”,

In sdcard there is more than 1 GB free space.

 

root@imx7dsabresd:~# yavta /dev/video1 -c1 -n1 -s640x480 -fUYVY -F

Device /dev/video1 opened.------------[ cut here ]------------

 

Device `i.MX6S_CSI' on `platforWARNING: CPU: 1 PID: 418 at /imx7build/fsl-arm-yocto-bsp/nxp-camera-build/tmp/work-shared/imx7dsabresd/kernel-source/drivers/media/v4l2-core/videobuf2-core.c:1805 vb2_start_streaming+0xe8/0x164()

m:30710000.csi' is a video output

Modules linked in: (without mplanes) device.

Video ov5640_camera_mipi format set: UYVY (59565955) 640x mx6s_capture480 (stride 1280) field none buff mxc_mipi_csier size 614400

Video format:  (0 evbug0000000) 640x480 (stride 0) field

none buffer size 614400

1 buffeCPU: 1 PID: 418 Comm: yavta Tainted: G        W       4.1.38-fslc+gee67fc7 #12

rs requested.

length: 614400 offHardware name: Freescale i.MX7 Dual (Device Tree)

set: 0 timestamp type/source: mon[<800184e0>] (unwind_backtrace) from [<80013cfc>] (show_stack+0x20/0x24)

o/EoF

Buffer 0/0 mapped at addre[<80013cfc>] (show_stack) from [<8094421c>] (dump_stack+0x80/0x94)

ss 0x76d43000.

[<8094421c>] (dump_stack) from [<8003ac1c>] (warn_slowpath_common+0x94/0xc4)

[<8003ac1c>] (warn_slowpath_common) from [<8003ad08>] (warn_slowpath_null+0x2c/0x34)

[<8003ad08>] (warn_slowpath_null) from [<80602c60>] (vb2_start_streaming+0xe8/0x164)

[<80602c60>] (vb2_start_streaming) from [<80605930>] (vb2_internal_streamon+0x128/0x170)

[<80605930>] (vb2_internal_streamon) from [<806059b8>] (vb2_streamon+0x40/0x60)

[<806059b8>] (vb2_streamon) from [<7f00c614>] (mx6s_vidioc_streamon+0x50/0xa4 [mx6s_capture])

[<7f00c614>] (mx6s_vidioc_streamon [mx6s_capture]) from [<805eddcc>] (v4l_streamon+0x2c/0x30)

[<805eddcc>] (v4l_streamon) from [<805f1404>] (__video_do_ioctl+0x294/0x2f0)

[<805f1404>] (__video_do_ioctl) from [<805f0cec>] (video_usercopy+0x1d0/0x630)

[<805f0cec>] (video_usercopy) from [<805f116c>] (video_ioctl2+0x20/0x24)

[<805f116c>] (video_ioctl2) from [<805ec960>] (v4l2_ioctl+0x124/0x15c)

[<805ec960>] (v4l2_ioctl) from [<801465e0>] (do_vfs_ioctl+0x460/0x618)

[<801465e0>] (do_vfs_ioctl) from [<801467dc>] (SyS_ioctl+0x44/0x6c)

[<801467dc>] (SyS_ioctl) from [<8000fc00>] (ret_fast_syscall+0x0/0x3c)

---[ end trace 5417d473caa1347c ]---

Unable to start streaming: No buffer space available (105).

1 buffers released.

 

What is going wrong?

 

Thank in advance

Outcomes