#Body
**
Board:** Radxa Dragon Q6A (QCS6490, HTP v68)
OS: Ubuntu 24.04.4 LTS (noble), official Radxa image/repos ( README , README )
Kernel: 6.18.2-3-qcom (installed via linux-image-radxa-dragon-q6a); candidate 6.18.2-4 is available in the repo but not yet installed
QAIRT: 2.42.0.251225, matched on host (x86 conversion container) and board (aarch64 runtime)
Packages installed: fastrpc 1.0.4-1, fastrpc-test 1.0.4-1, libcdsprpc1 1.0.4-1, task-qualcomm-npu 0.1.0-7 (all from the official Radxa repo)
Symptom
Any qnn-net-run inference on a real INT8-quantized YOLO model (converted with QAIRT 2.42, dsp_arch=v68, soc_id=35) fails on-device, in two different ways:
Context-binary (.bin, via --retrieve_context) fails immediately:
Request feature vtcm size with value 4194304 unsupported
Failed to register context to device and backend
Failed to create context from binary with err 0x138d
Raw DLC (.dlc, via --dlc_path) gets further (context + graph composition succeed) but then crashes the CDSP itself during “Finalizing Graphs”, after emitting 100k+ repeated warnings:
[WARNING] Selecting disabled op for 0x… q::crouton_to_vtcm
qnn-net-run dies with SIGSEGV, and dmesg confirms the DSP core actually crashed:
qcom_q6v5_pas a300000.remoteproc: fatal error received: SFR Init: wdog or kernel error suspected.
remoteproc remoteproc1: crash detected in cdsp: type fatal error
remoteproc remoteproc1: recovering cdsp
(kernel auto-recovers the CDSP afterward)
What I ruled out already
- Not resolution/graph-size: identical errors at both 1280x1280 and 640x640 (full re-export/requant/recontext at 640).
- Not the host-side vtcm_mb config: regenerated the context-binary with vtcm_mb=8 instead of 0 (auto) - identical error, same requested value (4194304 bytes) either way.
What I found in dmesg (present since boot, independent of running any model)
qcom,fastrpc a300000.remoteproc:…fastrpcglink-apps-dsp: no reserved DMA memory for FASTRPC
qcom,fastrpc 3700000.remoteproc:…fastrpcglink-apps-dsp: no reserved DMA memory for FASTRPC
cma: Reserved 32 MiB at 0x00000000fda00000
Only a generic 32MB system-wide CMA pool exists; no dedicated reserved-memory/shared-dma-pool region bound to the FastRPC node via memory-region on either glink-edge.
What still works fine
fastrpc_test -a v68 passes all 3 tests (compute, FARF/HAP_mem/HAP_perf, multithreading) - basic FastRPC IPC to the CDSP works for small workloads. The failure seems specific to larger allocations (HTP graph/VTCM tiling for a real CNN).
Also: /usr/lib/dsp/cdsp/ has generic Qualcomm skeleton libs but no libQnnHtpV68Skel.so - I’m pointing ADSP_LIBRARY_PATH at the QAIRT SDK’s own bundled copy instead, not sure if that’s expected.