| 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 |
| |
| 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,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-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 |
| |
| Example: |
| qcom,adsprpc-mem { |
| compatible = "qcom,msm-adsprpc-mem-region"; |
| memory-region = <&adsp_mem>; |
| }; |