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