1Qualcomm Hexagon Peripheral Image Loader 2 3This document defines the binding for a component that loads and boots firmware 4on the Qualcomm Hexagon core. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,q6v5-pil", 11 "qcom,ipq8074-wcss-pil" 12 "qcom,qcs404-wcss-pil" 13 "qcom,msm8916-mss-pil", 14 "qcom,msm8974-mss-pil" 15 "qcom,msm8996-mss-pil" 16 "qcom,msm8998-mss-pil" 17 "qcom,sc7180-mss-pil" 18 "qcom,sc7280-mss-pil" 19 "qcom,sdm845-mss-pil" 20 21- reg: 22 Usage: required 23 Value type: <prop-encoded-array> 24 Definition: must specify the base address and size of the qdsp6 and 25 rmb register blocks 26 27- reg-names: 28 Usage: required 29 Value type: <stringlist> 30 Definition: must be "q6dsp" and "rmb" 31 32- interrupts-extended: 33 Usage: required 34 Value type: <prop-encoded-array> 35 Definition: reference to the interrupts that match interrupt-names 36 37- interrupt-names: 38 Usage: required 39 Value type: <stringlist> 40 Definition: The interrupts needed depends on the the compatible 41 string: 42 qcom,q6v5-pil: 43 qcom,ipq8074-wcss-pil: 44 qcom,qcs404-wcss-pil: 45 qcom,msm8916-mss-pil: 46 qcom,msm8974-mss-pil: 47 must be "wdog", "fatal", "ready", "handover", "stop-ack" 48 qcom,msm8996-mss-pil: 49 qcom,msm8998-mss-pil: 50 qcom,sc7180-mss-pil: 51 qcom,sc7280-mss-pil: 52 qcom,sdm845-mss-pil: 53 must be "wdog", "fatal", "ready", "handover", "stop-ack", 54 "shutdown-ack" 55 56- firmware-name: 57 Usage: optional 58 Value type: <stringlist> 59 Definition: must list the relative firmware image paths for mba and 60 modem. They are used for booting and authenticating the 61 Hexagon core. 62 63- clocks: 64 Usage: required 65 Value type: <phandle> 66 Definition: reference to the clocks that match clock-names 67 68- clock-names: 69 Usage: required 70 Value type: <stringlist> 71 Definition: The clocks needed depend on the compatible string: 72 qcom,ipq8074-wcss-pil: 73 no clock names required 74 qcom,qcs404-wcss-pil: 75 must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr", 76 "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc", 77 "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc", 78 "lcc_axim_cbc", "lcc_bcr_sleep" 79 qcom,q6v5-pil: 80 qcom,msm8916-mss-pil: 81 qcom,msm8974-mss-pil: 82 must be "iface", "bus", "mem", "xo" 83 qcom,msm8996-mss-pil: 84 must be "iface", "bus", "mem", "xo", "gpll0_mss", 85 "snoc_axi", "mnoc_axi", "pnoc", "qdss" 86 qcom,msm8998-mss-pil: 87 must be "iface", "bus", "mem", "xo", "gpll0_mss", 88 "snoc_axi", "mnoc_axi", "qdss" 89 qcom,sc7180-mss-pil: 90 must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi", 91 "nav" 92 qcom,sc7280-mss-pil: 93 must be "iface", "xo", "snoc_axi", "offline", "pka" 94 qcom,sdm845-mss-pil: 95 must be "iface", "bus", "mem", "xo", "gpll0_mss", 96 "snoc_axi", "mnoc_axi", "prng" 97 98- resets: 99 Usage: required 100 Value type: <phandle> 101 Definition: reference to the reset-controller for the modem sub-system 102 reference to the list of 3 reset-controllers for the 103 wcss sub-system 104 reference to the list of 2 reset-controllers for the modem 105 sub-system on SC7180, SC7280, SDM845 SoCs 106 107- reset-names: 108 Usage: required 109 Value type: <stringlist> 110 Definition: must be "mss_restart" for the modem sub-system 111 must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" 112 for the wcss sub-system 113 must be "mss_restart", "pdc_reset" for the modem 114 sub-system on SC7180, SC7280, SDM845 SoCs 115 116For devices where the mba and mpss sub-nodes are not specified, mba/mpss region 117should be referenced as follows: 118- memory-region: 119 Usage: required 120 Value type: <phandle> 121 Definition: reference to the reserved-memory for the mba region followed 122 by the mpss region 123 124For the compatible strings below the following supplies are required: 125 "qcom,q6v5-pil" 126 "qcom,msm8916-mss-pil", 127- cx-supply: (deprecated, use power domain instead) 128- mx-supply: (deprecated, use power domain instead) 129- pll-supply: 130 Usage: required 131 Value type: <phandle> 132 Definition: reference to the regulators to be held on behalf of the 133 booting of the Hexagon core 134 135For the compatible string below the following supplies are required: 136 "qcom,msm8974-mss-pil" 137- cx-supply: (deprecated, use power domain instead) 138- mss-supply: 139- mx-supply: (deprecated, use power domain instead) 140- pll-supply: 141 Usage: required 142 Value type: <phandle> 143 Definition: reference to the regulators to be held on behalf of the 144 booting of the Hexagon core 145 146For the compatible string below the following supplies are required: 147 "qcom,qcs404-wcss-pil" 148- cx-supply: 149 Usage: required 150 Value type: <phandle> 151 Definition: reference to the regulators to be held on behalf of the 152 booting of the Hexagon core 153 154For the compatible string below the following supplies are required: 155 "qcom,msm8996-mss-pil" 156- pll-supply: 157 Usage: required 158 Value type: <phandle> 159 Definition: reference to the regulators to be held on behalf of the 160 booting of the Hexagon core 161 162- power-domains: 163 Usage: required 164 Value type: <phandle> 165 Definition: reference to power-domains that match power-domain-names 166 167- power-domain-names: 168 Usage: required 169 Value type: <stringlist> 170 Definition: The power-domains needed depend on the compatible string: 171 qcom,ipq8074-wcss-pil: 172 no power-domain names required 173 qcom,q6v5-pil: 174 qcom,msm8916-mss-pil: 175 qcom,msm8974-mss-pil: 176 qcom,msm8996-mss-pil: 177 qcom,msm8998-mss-pil: 178 must be "cx", "mx" 179 qcom,sc7180-mss-pil: 180 must be "cx", "mx", "mss" 181 qcom,sc7280-mss-pil: 182 must be "cx", "mss" 183 qcom,sdm845-mss-pil: 184 must be "cx", "mx", "mss" 185 186- qcom,qmp: 187 Usage: optional 188 Value type: <phandle> 189 Definition: reference to the AOSS side-channel message RAM. 190 191- qcom,smem-states: 192 Usage: required 193 Value type: <phandle> 194 Definition: reference to the smem state for requesting the Hexagon to 195 shut down 196 197- qcom,smem-state-names: 198 Usage: required 199 Value type: <stringlist> 200 Definition: must be "stop" 201 202- qcom,halt-regs: 203 Usage: required 204 Value type: <prop-encoded-array> 205 Definition: a phandle reference to a syscon representing TCSR followed 206 by the three offsets within syscon for q6, modem and nc 207 halt registers. 208 a phandle reference to a syscon representing TCSR followed 209 by the four offsets within syscon for q6, modem, nc and vq6 210 halt registers on SC7280 SoCs. 211 212For the compatible strings below the following phandle references are required: 213 "qcom,sc7180-mss-pil" 214- qcom,spare-regs: 215 Usage: required 216 Value type: <prop-encoded-array> 217 Definition: a phandle reference to a syscon representing TCSR followed 218 by the offset within syscon for conn_box_spare0 register 219 used by the modem sub-system running on SC7180 SoC. 220 221For the compatible strings below the following phandle references are required: 222 "qcom,sc7280-mss-pil" 223- qcom,ext-regs: 224 Usage: required 225 Value type: <prop-encoded-array> 226 Definition: two phandle references to syscons representing TCSR_REG and 227 TCSR register space followed by the two offsets within the syscon 228 to force_clk_en/rscc_disable and axim1_clk_off/crypto_clk_off 229 registers respectively. 230 231- qcom,qaccept-regs: 232 Usage: required 233 Value type: <prop-encoded-array> 234 Definition: a phandle reference to a syscon representing TCSR followed 235 by the three offsets within syscon for mdm, cx and axi 236 qaccept registers used by the modem sub-system running on 237 SC7280 SoC. 238 239The Hexagon node must contain iommus property as described in ../iommu/iommu.txt 240on platforms which do not have TrustZone. 241 242= SUBNODES: 243The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 244the memory regions used by the Hexagon firmware. Each sub-node must contain: 245 246- memory-region: 247 Usage: required 248 Value type: <phandle> 249 Definition: reference to the reserved-memory for the region 250 251The Hexagon node may also have an subnode named either "smd-edge" or 252"glink-edge" that describes the communication edge, channels and devices 253related to the Hexagon. See ../soc/qcom/qcom,smd.yaml and 254../soc/qcom/qcom,glink.txt for details on how to describe these. 255 256= EXAMPLE 257The following example describes the resources needed to boot control the 258Hexagon, as it is found on MSM8974 boards. 259 260 modem-rproc@fc880000 { 261 compatible = "qcom,q6v5-pil"; 262 reg = <0xfc880000 0x100>, 263 <0xfc820000 0x020>; 264 reg-names = "qdsp6", "rmb"; 265 266 interrupts-extended = <&intc 0 24 1>, 267 <&modem_smp2p_in 0 0>, 268 <&modem_smp2p_in 1 0>, 269 <&modem_smp2p_in 2 0>, 270 <&modem_smp2p_in 3 0>; 271 interrupt-names = "wdog", 272 "fatal", 273 "ready", 274 "handover", 275 "stop-ack"; 276 277 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 278 <&gcc GCC_MSS_CFG_AHB_CLK>, 279 <&gcc GCC_BOOT_ROM_AHB_CLK>; 280 clock-names = "iface", "bus", "mem"; 281 282 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; 283 284 resets = <&gcc GCC_MSS_RESTART>; 285 reset-names = "mss_restart"; 286 287 cx-supply = <&pm8841_s2>; 288 mss-supply = <&pm8841_s3>; 289 mx-supply = <&pm8841_s1>; 290 pll-supply = <&pm8941_l12>; 291 292 qcom,smem-states = <&modem_smp2p_out 0>; 293 qcom,smem-state-names = "stop"; 294 295 mba { 296 memory-region = <&mba_region>; 297 }; 298 299 mpss { 300 memory-region = <&mpss_region>; 301 }; 302 }; 303