Skip to main content

IMX8MP Camera Usage Guide

Introduction

This guide collects the release, board, demo image, and Yocto build references for TechNexion IMX8MP development kits. It is based on the Yocto 5.2 (Walnascar) 2026Q1 Release with Linux kernel version 6.12.49-2.2.0.


Supported Camera Modules

Camera SeriesProducts
TEVS
TEVS-AR0144
TEVS-AR0145
TEVS-AR0234
TEVS-AR0235
TEVS-AR0246
TEVS-AR0521
TEVS-AR0522
TEVS-AR0544
TEVS-AR0821
TEVS-AR0822
TEVS-AR0830
TEVS-AR1335
TEVS-AR2020
Camera Sensor Comparison

Supported Boards

SoMBoard
EDM-G-IMX8M-PLUSWB-EDM-G-IMX8M-PLUS
EDM-G-WIZARD-IMX8M-PLUS
AXON-IMX8M-PLUSAXON-WIZARD-IMX8M-PLUS

Hardware Setup Instructions

1. Power Supply Preparation

  • Use a DC 5V or 12V power cable to supply power to the board.
  • If you are using FPD-Link III SerDes, use a 12V power adapter rated for at least 3A.
Select Target Board

Connect the power adapter via the barrel jack connector.

2. Debug Console Connection

Select Target Board
  • Prepare a USB-to-UART cable if you are connecting to a PC.
  • Connect the cable to the debug console port on the WB-EDM-G-IMX8M-PLUS board.

3. Camera Interface (CSI) Overview

  • The IMX8MP development kits feature two MIPI CSI-2 interfaces, referred to as CSI1 and CSI2.
  • These interfaces use 70-pin board-to-board connectors manufactured by Hirose.
  • The examples below show a TEVS camera connected to the CSI1 interface.
Select Target Board

Prepare Yocto demo image for testing TechNexion camera

Use a Yocto-based demo image that matches this release before validating TEVS camera behavior.

Downloading the Demo Image

Prebuilt demo images are available on TechNexion's official download server.

Flashing the Image

You can flash the image to e.MMC or an SD card using one of the following methods:


Build Yocto

TechNexion supports building a Yocto-based Linux image using the following kernel and manifest branch.

Supported Linux Kernel

Linux Kernel VersionYocto Branch
6.12.49tn-imx_6.12.49_2.2.0-stable

Source and Build Instructions

Fetch Yocto Source

Select Target Board

Camera Validation Status

Validated Software Version

Linux edm-g-imx8mp 6.12.49-2.2.0-next-g26c04debe71b #1 SMP PREEMPT Wed Jun 17 02:13:06 UTC 2026 aarch64 GNU/Linux
TechNexion i.MX Release Distro 6.12-walnascar (walnascar)
BUILD_ID="20260617050038"

Validation Notes

  • The captured media topology shows both TEVS sensor links enabled and immutable, so no manual media link command is required for this validated setup.
  • Use /dev/video2 for mxc_isi.0.capture and /dev/video3 for mxc_isi.1.capture. /dev/video0 and /dev/video1 are VPU codec nodes, not camera capture devices.
  • Camera capture, display preview, U-Boot configuration, and AXON coverage have been verified for this release.

Capture Device Mapping

CSI PathSensor EntitySensor SubdeviceCapture Node
CSI1 / mxc-mipi-csi2.0tevs 1-0048/dev/v4l-subdev2/dev/video2
CSI2 / mxc-mipi-csi2.1tevs 4-0048/dev/v4l-subdev3/dev/video3

Check Camera Initialization

  $ dmesg -t | grep tevs
    tevs 4-0048: tevs_probe() device node: tevs@48
    tevs 4-0048: Version:26.3.0.1
    tevs 4-0048: Product:TEVS-AR0821, HeaderVer:3, MIPI_Rate:800
    tevs 4-0048: Chip ID: 0x2557
    tevs 4-0048: probe success
    tevs 1-0048: tevs_probe() device node: tevs@48
    tevs 1-0048: Version:26.6.0.1
    tevs 1-0048: Product:TEVM-AR0144, HeaderVer:3, MIPI_Rate:800
    tevs 1-0048: Chip ID: 0x0356
    tevs 1-0048: probe success
    mx8-img-md: Registered sensor subdevice: tevs 1-0048 (1)
    mx8-img-md: Registered sensor subdevice: tevs 4-0048 (2)
    mx8-img-md: created link [tevs 1-0048] => [mxc-mipi-csi2.0]
    mx8-img-md: created link [tevs 4-0048] => [mxc-mipi-csi2.1]

Check Camera Availability

$ v4l2-ctl --list-device
():
        /dev/v4l-subdev0

():
        /dev/v4l-subdev1

FSL Capture Media Device (platform:32c00000.bus:camera):
        /dev/media0

mxc-isi_v1 (platform:32e00000.isi:cap_devic):
        /dev/video2

mxc-isi_v1 (platform:32e02000.isi:cap_devic):
        /dev/video3

vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video1

vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video0

Check Media Controller Topology

$ media-ctl -d /dev/media0 -p
Media controller API version 6.12.49

Media device information
------------------------
driver          mxc-md
model           FSL Capture Media Device
bus info        platform:32c00000.bus:camera
driver version  6.12.49

Device topology
- entity 1: mxc_isi.0 (16 pads, 2 links, 0 routes)
        pad0: SINK
                <- "mxc-mipi-csi2.0":4 [ENABLED]
        pad12: SOURCE
                -> "mxc_isi.0.capture":0 [ENABLED]

- 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":12 [ENABLED]

- entity 22: mxc_isi.1 (16 pads, 2 links, 0 routes)
        pad4: SINK
                <- "mxc-mipi-csi2.1":4 [ENABLED]
        pad12: SOURCE
                -> "mxc_isi.1.capture":0 [ENABLED]

- entity 39: mxc_isi.1.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: SINK
                <- "mxc_isi.1":12 [ENABLED]

- entity 43: mxc-mipi-csi2.0 (8 pads, 2 links)
             type Node subtype V4L flags 0
             device node name /dev/v4l-subdev0
        pad0: SINK
                <- "tevs 1-0048":0 [ENABLED,IMMUTABLE]
        pad4: SOURCE
                -> "mxc_isi.0":0 [ENABLED]

- entity 52: mxc-mipi-csi2.1 (8 pads, 2 links)
             type Node subtype V4L flags 0
             device node name /dev/v4l-subdev1
        pad0: SINK
                <- "tevs 4-0048":0 [ENABLED,IMMUTABLE]
        pad4: SOURCE
                -> "mxc_isi.1":4 [ENABLED]

- entity 61: tevs 1-0048 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev2
        pad0: SOURCE
                [stream:0 fmt:UYVY8_1X16/640x480@1/60 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                -> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]

- entity 63: tevs 4-0048 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev3
        pad0: SOURCE
                [stream:0 fmt:UYVY8_1X16/640x480@1/60 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                -> "mxc-mipi-csi2.1":0 [ENABLED,IMMUTABLE]

Run a GStreamer Capture Test

Use these commands to verify that the capture node can stream frames without requiring a display output.

$ gst-launch-1.0 -v v4l2src device=/dev/video2 num-buffers=30 ! \
  'video/x-raw,width=1280,height=720' ! \
  fakesink sync=false