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.

Video acceleration on Allwinner A83T

Featured Replies

I have been experimenting with trying to get video acceleration working on the A83T. I can see from /proc/device-tree/soc/... that there is already a video-engine node within the current A83T device tree. It appears to be applied as one of the megous patches ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch. Admittedly this is noted as being untested. In my initially created build via the build framework, Cedrus was not present at all among the list of loaded modules. I addressed this by creating an entry in the Cedrus compatibility table for the sun8i-a83t-video engine

 

drv-sun8i-a83t-cedrus-add-variant.patch

 

It now appears to load but complains about being unable to allocated an SRAM:

 

[   10.046406] cedrus 1c0e000.video-codec: Failed to claim SRAM
[   10.046490] cedrus 1c0e000.video-codec: Failed to probe hardware
[   10.091215] cedrus 1c0e000.video-codec: Failed to claim SRAM
[   10.091339] cedrus 1c0e000.video-codec: Failed to probe hardware
[   10.419296] cedrus 1c0e000.video-codec: Failed to claim SRAM
[   10.419597] cedrus 1c0e000.video-codec: Failed to probe hardware
[   20.193058] cedrus 1c0e000.video-codec: Failed to claim SRAM
[   20.193114] cedrus 1c0e000.video-codec: Failed to probe hardware
[   20.193322] platform 1c0e000.video-codec: deferred probe pending: (reason unknown)

 

Using both sun8i-a23-a33.dtsi and sun8i-h3.dtsi as points of reference, I attempted to make an SRAM allocation under the system controller but this still appears to fail with the same failure messages. I have double checked in the user manual and VE memory should definitely exist at 0x01D0 0000.

 

arm-dts-sun8i-a83t-add-ve-node.patch

 

I would be grateful for any pointers.

 

Thanks 

 

Ryzer

 

  • Author

It appears that the system control was not configured properly. In the default DTS the binding is "sun8i-a83t-system-controller" which appears to have been deprecated in favor of the suffix "system-control" from what I could find. So tested with "sun8i-a83t-system-control" and "sun8-h3-system-control" as a fall back option. This time we no complaints from Cedrus:

ryzer@cubietruckplus:~$ sudo dmesg | grep cedrus
[   10.624985] sunxi_cedrus: module is from the staging directory, the quality is unknown, you have been warned.
[   10.652836] cedrus 1c0e000.video-codec: Device registered as /dev/video0

 

Second test was to ensure that the video-engine clocks are set correctly, which can be done by temporarily disabling driver suspension.

ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/bus-ve/clk_enable_count
1
ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/ve/clk_enable_count
1
ryzer@cubietruckplus:/sys/kernel$ sudo cat debug/clk/dram-ve/clk_enable_count
1

 

Next test trying to get working which should be using the version of ffmpeg as detailed here: 

This is the current output of ffmpeg:

 

ffmpeg version 5.1.7-0+deb12u1 Copyright (c) 2000-2025 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-v4l2-request --enable-v4l2-m2m --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libudev --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Hardware acceleration methods:
vdpau
vaapi
drm
opencl
vulkan

 

It is also worth mention that as there is no support for the SGX544 GPU, we are limited to a CLI only interface for which MPV can only be launched full-screen. MPV fails to use hardware decoding and falls back to using software. MPV version is reported as 0.35.1

 

[   3.639][v][vo/gpu-next/opengl] Initializing GPU context 'drm'
[   3.643][e][vo/gpu-next] Can't handle VT release - signal already used
[   3.647][w][vo/gpu-next/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.
[   3.651][v][vo/gpu-next/opengl] Initializing KMS
[   3.657][v][vo/gpu-next/opengl] Picked DRM card 0, primary node /dev/dri/card0 as the default.
[   3.662][v][vo/gpu-next/opengl] Driver: sun4i-drm 1.0.0 (0)
[   3.666][v][vo/gpu-next/opengl/kms] Connector 63 currently connected to encoder 62
[   3.670][v][vo/gpu-next/opengl/kms] Selected Encoder 62 with CRTC 61
[   3.675][v][vo/gpu-next/opengl/kms] Selected mode: 1920x1200 (1920x1200@60.00Hz)
[   3.679][v][vo/gpu-next/opengl] DRM Atomic support found
[   3.684][v][vo/gpu-next/opengl/kms] Using overlay plane 51 as draw plane
[   3.689][v][vo/gpu-next/opengl/kms] Using primary plane 57 as drmprime plane
[   3.693][v][vo/gpu-next] GBM_FORMAT_ARGB8888 not supported by draw plane: Falling back to GBM_FORMAT_XRGB8888.
[   3.697][v][vo/gpu-next] Supported modifier: 0x0
[   3.702][v][vo/gpu-next] Creating GBM device
[   4.915][v][vo/gpu-next] Initializing GBM surface (1920 x 1200)
[   4.920][e][vo/gpu-next] Failed to create GBM surface.
[   4.924][e][vo/gpu-next] Failed to setup GBM.

 

[   5.397][v][vd] Container reported FPS: 30.000000
[   5.405][v][vd] Codec list:
[   5.409][v][vd]     h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[   5.414][v][vd]     h264_v4l2m2m (h264) - V4L2 mem2mem H.264 decoder wrapper
[   5.418][v][vd] Opening decoder h264
[   5.424][v][vd] Looking at hwdec h264-drm...
[   5.428][v][vd] Could not create device.
[   5.433][v][vd] No hardware decoding available for this codec.
[   5.437][v][vd] Using software decoding.
[   5.445][v][vd] Detected 8 logical cores.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

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.