blob: de40a7c60d553fa69b4b1d4f55301a3a57785466 [file] [log] [blame]
Qualcomm Technologies, Inc. FastRPC Driver
The MSM FastRPC driver implements an IPC (Inter-Processor Communication)
mechanism that allows for clients to transparently make remote method
invocations across DSP and APPS boundaries. This enables developers
to offload tasks to the DSP and free up the application processor for
other tasks.
Required properties:
- compatible : Must be one of "qcom,msm-fastrpc-adsp" or
"qcom,msm-fastrpc-compute"
Optional properties:
- qcom,fastrpc-glink: Flag to use glink instead of smd for IPC
- qcom,rpc-latency-us: FastRPC QoS latency vote
- qcom,adsp-remoteheap-vmid: FastRPC remote heap VMID list
- qcom,fastrpc-adsp-audio-pdr: Flag to enable ADSP Audio PDR
Optional subnodes:
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
banks
Subnode Required properties:
- compatible : Must be "qcom,msm-fastrpc-compute-cb"
- label: Label describing the channel this context bank belongs to
- iommus : A list of phandle and IOMMU specifier pairs that describe the
IOMMU master interfaces of the device
Example:
qcom,msm_fastrpc {
compatible = "qcom,msm-fastrpc-adsp";
qcom,fastrpc-glink;
qcom,rpc-latency-us = <2343>;
qcom,adsp-remoteheap-vmid = <22 37>;
qcom,msm_fastrpc_compute_cb_1 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "adsprpc-smd";
iommus = <&lpass_q6_smmu 8>,
};
qcom,msm_fastrpc_compute_cb_2 {
compatible = "qcom,msm-fastrpc-compute-cb";
label = "adsprpc-smd";
iommus = <&lpass_q6_smmu 9>,
};
};
Legacy SMMU v1/v2:
Required properties:
- compatible : Must be "qcom,msm-fastrpc-legacy-compute"
Required subnode:
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
banks
Required subnode properties:
- compatible : Must be "qcom,msm-fastrpc-legacy-compute-cb"
- label : Label describing the channel this context bank belongs to
- iommus : A list of phandle and IOMMU specifier pairs that describe the
IOMMU master interfaces of the device
- sids : A list of SID associated with the context bank
Example:
qcom,msm_fastrpc {
compatible = "qcom,msm-fastrpc-legacy-compute";
qcom,msm_fastrpc_compute_cb {
compatible = "qcom,msm-fastrpc-legacy-compute-cb";
label = "adsprpc-smd";
iommus = <&apps_iommu 0x2408 0x7>;
sids = <0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf>;
};
};
Remote Heap:
Required properties:
- compatible : Must be "qcom,msm-adsprpc-mem-region"
- memory-region : CMA region which is owned by this device
- restrict-access : Blocking vote for hyp_assign_phys function call
Example:
qcom,adsprpc-mem {
compatible = "qcom,msm-adsprpc-mem-region";
memory-region = <&adsp_mem>;
restrict-access;
};