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