diff --git a/bindings/msm-fastrpc.txt b/bindings/msm-fastrpc.txt index d839212b..864db51f 100644 --- a/bindings/msm-fastrpc.txt +++ b/bindings/msm-fastrpc.txt @@ -17,6 +17,8 @@ Optional properties: - 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 diff --git a/sun/sun-dsp-trustedvm.dts b/sun/sun-dsp-trustedvm.dts index 3304725f..68cb4c5f 100644 --- a/sun/sun-dsp-trustedvm.dts +++ b/sun/sun-dsp-trustedvm.dts @@ -1,3 +1,8 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + /dts-v1/; /plugin/; @@ -6,5 +11,5 @@ / { model = "Qualcomm Technologies, Inc. Sun - TrustedVM"; compatible = "qcom,sun"; - qcom,msm-id = <618 0x10000>; + qcom,msm-id = <618 0x10000>, <618 0x20000>, <639 0x10000>, <639 0x20000>; }; diff --git a/sun/sun-dsp-trustedvm.dtsi b/sun/sun-dsp-trustedvm.dtsi index 6f78bdf2..d0cc2ac7 100644 --- a/sun/sun-dsp-trustedvm.dtsi +++ b/sun/sun-dsp-trustedvm.dtsi @@ -2,11 +2,15 @@ #include &soc { + fastrpc_gen_pool_region : fastrpc_gen_pool_region { + iommu-addresses = <&fastrpc_compute_cb1 0x8000 0x11000>; + }; + fastrpc_compute_cb1: compute-cb@13 { compatible = "qcom,fastrpc-compute-cb"; reg = <11>; iommus = <&apps_smmu 0xC0B 0x0>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; + memory-region = <&fastrpc_gen_pool_region>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; qrtr-gen-pool = <&fastrpc_compute_cb1>; diff --git a/sun/sun-dsp.dtsi b/sun/sun-dsp.dtsi index 53bbbac2..514ccc4f 100644 --- a/sun/sun-dsp.dtsi +++ b/sun/sun-dsp.dtsi @@ -12,9 +12,9 @@ reg = <3>; iommus = <&apps_smmu 0x1003 0x0080>, <&apps_smmu 0x1043 0x0020>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; pd-type = <1>; /* ROOT_PD */ }; @@ -23,10 +23,10 @@ reg = <4>; iommus = <&apps_smmu 0x1004 0x0080>, <&apps_smmu 0x1044 0x0020>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; qcom,nsessions = <8>; dma-coherent; + qcom,iova-best-fit; pd-type = <3>; /* SENSORS_STATICPD */ }; @@ -35,9 +35,9 @@ reg = <5>; iommus = <&apps_smmu 0x1005 0x0080>, <&apps_smmu 0x1045 0x0020>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; pd-type = <2>; /* AUDIO_STATICPD */ }; @@ -46,9 +46,9 @@ reg = <6>; iommus = <&apps_smmu 0x1006 0x0080>, <&apps_smmu 0x1046 0x0020>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; pd-type = <5>; /* OIS_STATICPD */ }; @@ -58,9 +58,10 @@ iommus = <&apps_smmu 0x1007 0x0040>, <&apps_smmu 0x1067 0x0000>, <&apps_smmu 0x1087 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -69,9 +70,10 @@ reg = <8>; iommus = <&apps_smmu 0x1008 0x0080>, <&apps_smmu 0x1048 0x0020>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; }; @@ -93,9 +95,9 @@ iommus = <&apps_smmu 0x19C1 0x0000>, <&apps_smmu 0x0C21 0x0000>, <&apps_smmu 0x0C01 0x0040>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; pd-type = <1>; /* ROOT_PD */ }; @@ -106,9 +108,10 @@ <&apps_smmu 0x0C02 0x0020>, <&apps_smmu 0x0C42 0x0000>, <&apps_smmu 0x19C2 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -119,9 +122,10 @@ <&apps_smmu 0x0C23 0x0000>, <&apps_smmu 0x0C03 0x0040>, <&apps_smmu 0x19C3 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -132,9 +136,10 @@ <&apps_smmu 0x0C24 0x0000>, <&apps_smmu 0x0C04 0x0040>, <&apps_smmu 0x19C4 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -145,9 +150,10 @@ <&apps_smmu 0x0C25 0x0000>, <&apps_smmu 0x0C05 0x0040>, <&apps_smmu 0x19C5 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -158,9 +164,10 @@ <&apps_smmu 0x0C06 0x0020>, <&apps_smmu 0x0C46 0x0000>, <&apps_smmu 0x19C6 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -171,9 +178,10 @@ <&apps_smmu 0x0C27 0x0000>, <&apps_smmu 0x0C07 0x0040>, <&apps_smmu 0x19C7 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -184,9 +192,10 @@ <&apps_smmu 0x0C08 0x0020>, <&apps_smmu 0x0C48 0x0000>, <&apps_smmu 0x19C8 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -198,11 +207,11 @@ <&apps_smmu 0x0C29 0x0000>, <&apps_smmu 0x0C09 0x0040>, <&apps_smmu 0x19C9 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; qcom,iommu-vmid = <0xA>; /* VMID_CP_PIXEL */ qcom,nsessions = <3>; dma-coherent; + qcom,iova-best-fit; pd-type = <6>; /* CPZ_USERPD */ }; @@ -213,9 +222,10 @@ <&apps_smmu 0x0C2C 0x0000>, <&apps_smmu 0x0C0C 0x0040>, <&apps_smmu 0x19CC 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -227,9 +237,10 @@ <&apps_smmu 0x0C2E 0x0000>, <&apps_smmu 0x0C4D 0x0000>, <&apps_smmu 0x19CD 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; @@ -239,9 +250,10 @@ iommus = <&apps_smmu 0x196E 0x0000>, <&apps_smmu 0x0C0E 0x0040>, <&apps_smmu 0x19CE 0x0000>; - qcom,iommu-dma-addr-pool = <0x10000000 0xF0000000>; qcom,iommu-faults = "stall-disable", "HUPCF"; dma-coherent; + qcom,iova-best-fit; + qcom,iova-max-align-shift = <9>; /* Set MAX alignment to 2 MB*/ pd-type = <7>; /* USERPD */ }; };