HW model: Toradex Verdin iMX8M Plus on Verdin Development Board
Toradex version: 0063 V1.1B
Serial number: 15335644
Processor arch: aarch64
We have a Basler MIPI-CSI camera running under Kirkstone which I am working to bring up in Scarthgap. I have altered the device tree as necessary using a patch and a device tree overlay in the same manner as with Kirkstone. The camera seems to be recognized and the correct nodes and subnodes are being created under /dev. When I run the camera I get the following:
Might you have any other suggestions as to how to troubleshoot this error. I have rechecked my device tree modifications and cannot see any reason for this issue. These are the same modifications which worked in Kirkstone Yocto.
The device tree looks correct, I don’t have the camera to be able to test. So its difficult to know exactly whats going on. I’ve escalated this ticket up our internal system so hopefully we can gain some insight.
Our team was able to test our sample csi camera OV5640 with BSP 7 and was able to get streaming.
Looking at the device tree again, you compatible property looks a bit different than some other examples in linux (your string termination). As example from arch/arm64/boot/dts/freescale/imx8mp-evk-dual-basler.dts It should look like: compatible = "basler,basler-camera-vvcam", "basler-camera-vvcam";
I had written my patch to mirror the compiled code with respect to the compatible line. I changed it to the wording you provided but it compiles to what I had originally and doesn’t change the behavior when the camera is run.
It is good news that at least the OV5640 can run correctly with this kernel version.
It may be that there is some issues specifically with i2c communication. Can you verify the output with i2cdetect -y and try and read some registers with the i2cget command. If you could also post more details such as full logs, lsmod output that may be beneficial.
I believe the camera is on /dev/i2c-2 as probing (using the Kirkstone firmware) with the camera attached using i2cdetect -y 2 shows a UU indicating, I believe, an address being used by a driver. This UU is absent if I boot with the MIPI-CSI cable detached from the camera. I don’t know how to get the address to use i2cget though as no address is provided by i2cdetect because it is being used by a driver.
The i2cdetect -y 2 looks the same in Scarthgap as in Kirkstone.
Toradex Scarthgap BSP in which the MIPI-CSI camera causes a kernel panic.
My understanding is that you are able to pass kernel panic issue and now you are able to see video device. Only after running gst pipeline you get I2C timeout error and thus unable to stream from camera. Please correct me if I get this wrong.
Although we tested MIPI CSI with OV5640 successfully we do see there is quite changes in I2C driver between the version and this may have affect other slave device something which needs to be tested to say for sure.
Thank you for your help.
The kernel panic I see is what results from running the gst pipeline. I have not found a solution to that problem.
I had also noticed the “single-master” property and patched it out as shown below on the device tree as printed out via the “dtc -I fs /sys/firmware/devicetree/base” command. Unfortunately, the change had no effect on my problem.
Please see the responses below to the commands you requested:
root@verdin-imx8mp-15335644:~# ls /dev/video*
/dev/video0 /dev/video1 /dev/video2
root@verdin-imx8mp-15335644:~# v4l2-ctl --list-devices
[ 647.429100] enter isp_mi_stop
():
/dev/v4l-subdev0
/dev/v4l-subdev2
/dev/v4l-subdev3
(csi0):
/dev/v4l-subdev1
FSL Capture Media Device (platform:32c00000.bus:camera):
/dev/media0
VIV (platform:viv0):
/dev/video2
vsi_v4l2dec (platform:vsi_v4l2dec):
/dev/video1
vsi_v4l2enc (platform:vsi_v4l2enc):
/dev/video0
viv_media (platform:vvcam-video.0):
/dev/media1
root@verdin-imx8mp-15335644:~# v4l2-ctl -V
Format Video Capture Multiplanar:
Width/Height : 320/240
Pixel Format : ‘HEVC’ (HEVC)
Field : None
Number of planes : 1
Flags :
Colorspace : Default
Transfer Function : Default
YCbCr/HSV Encoding: Default
Quantization : Default
Plane 0 :
Bytes per Line : 320
Size Image : 131072
The “uname -r” command retrieves the following kernel versions.
For the Toradex Scarthgap build it is:
6.6.54-7.1.0-devel-gc39f69f2099d
For the non-Toradex Scarthgap build it is:
6.6.23-imx8mp-imx8mp-g57758995c38a
According to your release matrix:
It seems my build is not using the correct kernel version for the Verdin i.MX8M Plus. How do I correctly set that within my build?
To test with specific kernel version, need to switch to specified tag.
Please check below link explaining same , with build 7.0.0 older kernel version which is being tested with other board should be built.
Additionally, can you please again share complete log after running gstreamer pipeline along with gst command.
I updated to the following build: 7.1.0-devel-20250106204803+build.0.
Unfortunately, the camera problem remains. Please see below for the gstreamer command as well as the response.
How is this going for you? Any progress sense the last update?
It may be that there’s something awry that we’re not seeing remotely. That if we can troubleshoot the hardware locally, we may be able to discover more. Would you be open to shipping the camera hardware in question to our team so we can at least replicate the issue, and maybe discover more?
I can use the camera with 7.0. This is fine for now.
We only have one adapter board for the MIPI-CSI connection between the camera and the Mallow board. We will be making more adapter boards and we could potentially send you the camera, adapter board, and cables if you want to troubleshoot 7.1 at a later date.