106 lines
3.7 KiB
Plaintext
106 lines
3.7 KiB
Plaintext
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,rpc-latency-us : FastRPC QoS latency vote
|
|
- qcom,adsp-remoteheap-vmid : FastRPC remote heap VMID list
|
|
- qcom,secure-context-bank : Bool indicating secure FastRPC context bank.
|
|
- qcom,fastrpc-legacy-remote-heap : Bool indicating hypervisor is not supported.
|
|
- qcom,fastrpc-adsp-audio-pdr : Flag to enable ADSP Audio PDR
|
|
- qcom,secure-domains : FastRPC secure domain configuration
|
|
- qcom,fastrpc-adsp-sensors-pdr : Flag to enable Sensors PDR
|
|
- qcom,single-core-latency-vote : Limit FastRPC PM QoS to only vote for 1
|
|
lowest capacity core
|
|
|
|
Optional subnodes:
|
|
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context banks
|
|
- qcom,msm-fastrpc-rpmsg : Child node for rpmsg instead of glink for IPC
|
|
|
|
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
|
|
- dma-coherent : A flag marking a context bank as I/O coherent
|
|
- shared-cb : A value indicating how many fastrpc sessions can share a
|
|
context bank
|
|
- pd-type : A value indicating remote subsystem proess type
|
|
- alloc-size-range: A pair values indicating the allocation size range
|
|
of context bank
|
|
|
|
Example:
|
|
qcom,msm_fastrpc {
|
|
compatible = "qcom,msm-fastrpc-compute";
|
|
qcom,fastrpc-rpmsg;
|
|
qcom,rpc-latency-us = <235>;
|
|
qcom,adsp-remoteheap-vmid = <22 37>;
|
|
qcom,fastrpc-adsp-sensors-pdr;
|
|
|
|
qcom,msm_fastrpc_rpmsg {
|
|
compatible = "qcom,msm-fastrpc-rpmsg";
|
|
qcom,glink-channels = "fastrpcglink-apps-dsp";
|
|
intents = <0x64 64>;
|
|
};
|
|
|
|
qcom,msm_fastrpc_compute_cb_1 {
|
|
compatible = "qcom,msm-fastrpc-compute-cb";
|
|
label = "cdsprpc-smd";
|
|
qcom,secure-context-bank;
|
|
iommus = <&apps_smmu 0x1401 0x0>;
|
|
dma-coherent;
|
|
};
|
|
qcom,msm_fastrpc_compute_cb_2 {
|
|
compatible = "qcom,msm-fastrpc-compute-cb";
|
|
label = "sdsprpc-smd";
|
|
iommus = <&apps_smmu 0x1402 0x0>;
|
|
shared-cb = <5>;
|
|
};
|
|
};
|
|
|
|
Legacy SMMU v1/v2:
|
|
|
|
Required properties:
|
|
- compatible : Must be "qcom,msm-fastprc-legacy-compute-cb"
|
|
|
|
Required subnode:
|
|
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
|
|
banks
|
|
|
|
Required subnode properties:
|
|
- qcom,adsp-shared-phandle : phandle that describe the context bank handle
|
|
- qcom,adsp-shared-sids : A list of SID associated with the context bank
|
|
- qcom,virtual-addr-pool : Virtual address range that the context bank
|
|
will be using
|
|
|
|
Example:
|
|
qcom,adsprpc_domains {
|
|
compatible = "qcom,msm-fastrpc-legacy-compute-cb";
|
|
qcom,msm_fastrpc_compute_cb {
|
|
qcom,adsp-shared-phandle = <&adsp_shared>;
|
|
qcom,adsp-shared-sids = <0x8 0x9>;
|
|
qcom,virtual-addr-pool = <0x80000000 0x7FFFFFFF>;
|
|
};
|
|
};
|
|
|
|
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;
|
|
};
|