AXON V0.2 (RK3588): MPP fails when Mali/panthor enumerates as DRM card0

On one of our AXON V0.2 boards all Rockchip MPP elements fail: mpph264enc with “gst_buffer_new_allocate: failed to allocate 460800 bytes → failed to activate bufferpool”, mppvideodec with “failed to init mpp ctx”. A sibling AXON V0.2 with the same kernel (6.1.75-axon) and packages works.

We traced it to DRM enumeration: librockchip_mpp hardcodes /dev/dri/card0 (confirmed in the binary), but on the affected unit card0 is panthor (Mali), which returns ENOSYS for DRM_IOCTL_MODE_CREATE_DUMB (strace-confirmed). On the working unit card0 is rockchip-drm. Reboots don’t change the order.

  1. Is there a supported way to make rockchip-drm deterministically enumerate as card0/renderD128 (DT, kernel config, command line)?
  2. Is there an updated librockchip_mpp/gstreamer-rockchip1 that discovers the correct DRM node?
  3. Is there a fixed image/kernel for AXON V0.2 we should flash?
  4. If not, what workaround do you recommend?

We can provide strace/dmesg/gst logs. Thanks!

(Note: runtime unbind/rebind of the DRM drivers hung the board and the watchdog reset it — not a viable workaround.)

can you check the date of the kernel build?

uname -a
  • Kernel version: 6.1.75-axon (axon)
  • Build date: Monday, Aug 4 2025, 10:17:13 IST

there is new update in kernel available, try running

sudo apt update && sudo apt upgrade
  • Kernel upgraded linux-image-6.1.75-axon 20250804-axon → 20251006-axon from apt.vicharak.in stable-axon (same 6.1.75-axon line; headers + libc-dev matched). Booted cleanly, RGA/MPP/NPU devices present.
  • With RGA enabled the box passed the first minute, then userland began segfaulting (a trivial uptime crashed), sshd reset handshakes, and the box became unreachable — the documented “driver drops the process mm” failure. Previous-boot journal (persistent + 10 s flush): BUG: Bad rss-counter state (MM_ANONPAGES 110840, MM_SHMEMPAGES 118702), BUG: non-zero pgtables_bytes on freeing mm, then repeated Internal error: Oops: 0000000096000005 with the first frame in unmap_page_range/__handle_mm_fault on the edge process. This is memory corruption caused by a failed RGA job (the 32-bit RGA2 MMU cannot map user virtual addresses above 4 GB), not a recoverable per-job error.

I think you are on very old image where we used to use apt.vicharak.in as our apt package manager, we have updated it to pkg.vicharak.in

Now you can do this

sudo apt update
sudo apt install vicharak-config
sudo apt install linux-image-6.1.75-axon

after this let us know if the RGA is fixed or not

The new kernel 20261005-axon fixes the RGA crash — thank you. The driver “RGA multicore Device Driver v1.3.11” still needs a matching userspace: our installed librga (API 1.8.1, package 2.2.0-1) fails every job with unsupported mm_flag[0x8]. With librga API 1.10.5, RGA works over uncached CMA dma-buf fds (/dev/dma_heap/cma + wrapbuffer_fd_t); user VAs and system-heap buffers are rejected. Please publish the matching librga package in pkg.vicharak.in so boxes can apt install it.

sudo apt update
sudo apt install librga2
1 Like