Hardware decoder

Genio-520 (MT8391) VPU hardware decode not working – firmware / DT support clarification needed

Hello

We are working with MediaTek Genio-520 EVK (MT8391) and facing an issue where VPU hardware decoding is not functional, while the same software stack works correctly on Genio-510 (MT8370).

Below are the observations and differences we found. We would appreciate your guidance on what is missing or needs to be enabled for MT8391.


Working Platform

  • Board: Genio-510 EVK
  • SoC: MT8370
  • Kernel: 6.6.37-mtk
  • Result: VPU hardware decoding works

G510 – dmesg output

read_img: vpu_fw request_firmware cam_vpu1 success
read_img: vpu_fw request_firmware cam_vpu2 success
read_img: vpu_fw request_firmware cam_vpu3 success
apusys_load_image: vpu_fw request_firmware mediatek/mt8370/apusys.sig.img success
vpu_probe: succeed

G510 – runtime

/sys/class/devfreq/soc:vpu_devfreq

G510 – firmware present

/lib/firmware/mediatek/mt8370/
 ├─ cam_vpu1.img
 ├─ cam_vpu2.img
 ├─ cam_vpu3.img
 └─ apusys.sig.img

Non-working Platform

  • Board: Genio-520 EVK
  • SoC: MT8391
  • Kernel: 6.6.37-mtk
  • Result: Hardware decoder not used (software decode only)

G520 – dmesg output

mvpu_init: register platform driver pass
mtk-apu: creating channel mvpu-tx-rpmsg
[VCU] mtk_vcu_open name: vpud

Missing on G520

  • No vpu_fw request_firmware
  • No vpu_probe: succeed
  • No soc:vpu_devfreq

G520 – firmware check

/lib/firmware/mediatek/
 ├─ apusys.sig.img
 └─ mt8391/apusys.sig.img

:cross_mark: No cam_vpu*.img for MT8391


Kernel Configuration

The following options are enabled in kernel:

CONFIG_MTK_VPU=y
CONFIG_MTK_VPU_FW=y
CONFIG_MTK_VPU_DEVFREQ=y

However:

  • /sys/class/devfreq/soc:vpu_devfreq is not created
  • request_firmware(cam_vpu*) is never triggered

Questions / Clarification Needed

  1. Does MT8391 (Genio-520) require cam_vpu*.img firmware similar to MT8370?

    • If yes, where can we obtain the correct MT8391 VPU firmware?
  2. Is VPU camera/codec firmware intentionally not provided for MT8391 in current BSP?

  3. Are additional device-tree nodes required to enable VPU firmware loading on MT8391?

    • If possible, could you share the required DT bindings or reference DTS?
  4. Is mvpu + VCU support sufficient for video decode on MT8391, or is classic vpu_core not supported?

  5. Is hardware video decode officially supported on Genio-520 in the current Linux BSP?

    • If yes, which components must be enabled (firmware / DT / userspace)?

Summary

  • VPU hardware exists on MT8391
  • Kernel driver loads (mvpu_init)
  • But firmware is not loaded
  • No devfreq node is created
  • Hardware decoder is not used

We would appreciate clarification on missing firmware, DT requirements, or BSP limitations for enabling VPU hardware decoding on Genio-520.

Thank you for your support.