Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Armbian kernel for IMX.6 missing VPU / CODA960 support?

Featured Replies

Hello,

 

I have recently tried a more recent kernel  5.10.x for my HummingBoard with imx6 solo. After playing with GPU/OpenGL acceleration I have noticed that there is no H.264/MJPEG Video acceleration present in the kernel. The video codec Chips&Media 960 driver module (kernel option VIDEO_CODA) is simply not build in.

Why is that? Can it be enabled by default for future IMX6 builds?

 

Thanks for your support!!

  • Author

Hi Igor,

 

I reckon this "someone" could be me? :)

I have build cubox kernel with the below diff on the "linux-imx6-current.config"  and it apparently works.

+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_V4L2_JPEG_HELPER=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CODA=m
+CONFIG_VIDEO_IMX_VDOA=m

 

1. Kernel boots and is detecting  the codec

[   29.911784] coda 2040000.vpu: Direct firmware load for vpu_fw_imx6d.bin failed with error -2
[   29.961350] coda 2040000.vpu: Using fallback firmware vpu/vpu_fw_imx6d.bin
[   29.964619] coda 2040000.vpu: Firmware code revision: 46063
[   29.964636] coda 2040000.vpu: Initialized CODA960.
[   29.964645] coda 2040000.vpu: Firmware version: 3.1.1
[   29.969814] coda 2040000.vpu: encoder registered as video0
[   29.970090] coda 2040000.vpu: decoder registered as video1
[   29.970348] coda 2040000.vpu: encoder registered as video2
[   29.970715] coda 2040000.vpu: decoder registered as video3

 

2. v4l2-ctl reports the devices as being CODA960
 

CODA960 (platform:coda):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3

imx-capture (platform:ipu1_csi0):
    /dev/video4

imx-capture (platform:ipu1_csi1):
    /dev/video7

imx-capture (platform:ipu1_ic_prpenc):
    /dev/video5

imx-capture (platform:ipu1_ic_prpvf):
    /dev/video6

 

3. GStreamer has plugins for V4L2 video decoder, so finally lets give it a try with some h.264...

gst-launch-1.0 filesrc location=Big_Buck_Bunny_720_10s_30MB.mp4 ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! v4l2h264dec ! kmssink

 

The video is ok, cat /proc/interrupts shows activity on the VPU, and the CPU load is low (5%-10% on i.mx.6 SOLO!), so the video acceleration is there!.

 

Igor, can you take it from here and integrate it or should I dare and make a PR for this?

 

 

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.