msm-fastrpc.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. Qualcomm Technologies, Inc. FastRPC Driver
  2. The MSM FastRPC driver implements an IPC (Inter-Processor Communication)
  3. mechanism that allows for clients to transparently make remote method
  4. invocations across DSP and APPS boundaries. This enables developers
  5. to offload tasks to the DSP and free up the application processor for
  6. other tasks.
  7. Required properties:
  8. - compatible : Must be one of "qcom,msm-fastrpc-adsp" or
  9. "qcom,msm-fastrpc-compute"
  10. Optional properties:
  11. - qcom,fastrpc-glink: Flag to use glink instead of smd for IPC
  12. - qcom,rpc-latency-us: FastRPC QoS latency vote
  13. - qcom,adsp-remoteheap-vmid: FastRPC remote heap VMID list
  14. - qcom,fastrpc-adsp-audio-pdr: Flag to enable ADSP Audio PDR
  15. - qcom,fastrpc-adsp-sensors-pdr: Flag to enable Sensors PDR
  16. - qcom,secure-domains: FastRPC secure domain configuration
  17. Optional subnodes:
  18. - qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
  19. banks
  20. Subnode Required properties:
  21. - compatible : Must be "qcom,msm-fastrpc-compute-cb"
  22. - label: Label describing the channel this context bank belongs to
  23. - iommus : A list of phandle and IOMMU specifier pairs that describe the
  24. IOMMU master interfaces of the device
  25. Subnode Optional properties:
  26. - shared-cb : Present if context bank need to be shared
  27. Example:
  28. qcom,msm_fastrpc {
  29. compatible = "qcom,msm-fastrpc-adsp";
  30. qcom,fastrpc-glink;
  31. qcom,rpc-latency-us = <2343>;
  32. qcom,adsp-remoteheap-vmid = <22 37>;
  33. qcom,fastrpc-adsp-sensors-pdr;
  34. qcom,msm_fastrpc_compute_cb_1 {
  35. compatible = "qcom,msm-fastrpc-compute-cb";
  36. label = "adsprpc-smd";
  37. iommus = <&lpass_q6_smmu 8>,
  38. };
  39. qcom,msm_fastrpc_compute_cb_2 {
  40. compatible = "qcom,msm-fastrpc-compute-cb";
  41. label = "adsprpc-smd";
  42. iommus = <&lpass_q6_smmu 9>,
  43. shared-cb;
  44. };
  45. };
  46. Legacy SMMU v1/v2:
  47. Required properties:
  48. - compatible : Must be "qcom,msm-fastrpc-legacy-compute"
  49. Required subnode:
  50. - qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
  51. banks
  52. Required subnode properties:
  53. - compatible : Must be "qcom,msm-fastrpc-legacy-compute-cb"
  54. - label : Label describing the channel this context bank belongs to
  55. - iommus : A list of phandle and IOMMU specifier pairs that describe the
  56. IOMMU master interfaces of the device
  57. - sids : A list of SID associated with the context bank
  58. Example:
  59. qcom,msm_fastrpc {
  60. compatible = "qcom,msm-fastrpc-legacy-compute";
  61. qcom,msm_fastrpc_compute_cb {
  62. compatible = "qcom,msm-fastrpc-legacy-compute-cb";
  63. label = "adsprpc-smd";
  64. iommus = <&apps_iommu 0x2408 0x7>;
  65. sids = <0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf>;
  66. };
  67. };
  68. Remote Heap:
  69. Required properties:
  70. - compatible : Must be "qcom,msm-adsprpc-mem-region"
  71. - memory-region : CMA region which is owned by this device
  72. - restrict-access : Blocking vote for hyp_assign_phys function call
  73. Example:
  74. qcom,adsprpc-mem {
  75. compatible = "qcom,msm-adsprpc-mem-region";
  76. memory-region = <&adsp_mem>;
  77. restrict-access;
  78. };