arm64: dts: qcom: milos: add fastrpc remote heap for the ADSP audio PD

The ADSP audio PD loads its voice post-processing modules (Fluence
NN/EF/pro-vc etc.) as dynamic shared objects fetched from the apps
filesystem at GRAPH_OPEN time through FastRPC (adsprpcd attached with
createstaticpd:audiopd serves the files - /vendor/dsp/adsp on stock).
The static-PD attach allocates a remote heap that must be SCM-assigned
to the DSP: without qcom,vmids the heap stays HLOS-owned and the PD's
first touch kills the SoC instantly (xPU violation, no kernel output).

Add a 12 MiB CMA pool (mirroring downstream's adsp_mem_heap: 32-bit
addressable, 4 MiB aligned) and the LPASS/ADSP_HEAP vmids, following
the sc7280 (kodiak) precedent where upstream audiopd support landed.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
This commit is contained in:
Jorijn van der Graaf 2026-07-08 01:31:08 +02:00
commit d36259f54b

View file

@ -548,6 +548,14 @@
no-map;
};
adsp_rpc_heap_mem: adsp-rpc-heap {
compatible = "shared-dma-pool";
alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
reusable;
alignment = <0x0 0x400000>;
size = <0x0 0xc00000>;
};
pvm_fw_mem: pvm-fw-region@824a0000 {
reg = <0x0 0x824a0000 0x0 0x100000>;
no-map;
@ -1398,6 +1406,9 @@
qcom,glink-channels = "fastrpcglink-apps-dsp";
label = "adsp";
qcom,non-secure-domain;
memory-region = <&adsp_rpc_heap_mem>;
qcom,vmids = <QCOM_SCM_VMID_LPASS
QCOM_SCM_VMID_ADSP_HEAP>;
#address-cells = <1>;
#size-cells = <0>;