1 Qualcomm Hexagon Peripheral Image Loader
3 This document defines the binding for a component that loads and boots firmware
4 on the Qualcomm Hexagon core.
9 Definition: must be one of:
11 "qcom,ipq8074-wcss-pil"
12 "qcom,msm8916-mss-pil",
13 "qcom,msm8974-mss-pil"
14 "qcom,msm8996-mss-pil"
19 Value type: <prop-encoded-array>
20 Definition: must specify the base address and size of the qdsp6 and
25 Value type: <stringlist>
26 Definition: must be "q6dsp" and "rmb"
28 - interrupts-extended:
30 Value type: <prop-encoded-array>
31 Definition: reference to the interrupts that match interrupt-names
35 Value type: <stringlist>
36 Definition: The interrupts needed depends on the the compatible
39 qcom,ipq8074-wcss-pil:
42 must be "wdog", "fatal", "ready", "handover", "stop-ack"
45 must be "wdog", "fatal", "ready", "handover", "stop-ack",
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
58 Definition: reference to the clocks that match clock-names
62 Value type: <stringlist>
63 Definition: The clocks needed depend on the compatible string:
64 qcom,ipq8074-wcss-pil:
65 no clock names required
69 must be "iface", "bus", "mem", "xo"
71 must be "iface", "bus", "mem", "xo", "gpll0_mss",
72 "snoc_axi", "mnoc_axi", "pnoc", "qdss"
74 must be "iface", "bus", "mem", "xo", "gpll0_mss",
75 "snoc_axi", "mnoc_axi", "prng"
80 Definition: reference to the reset-controller for the modem sub-system
81 reference to the list of 3 reset-controllers for the
83 reference to the list of 2 reset-controllers for the modem
84 sub-system on SDM845 SoCs
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
95 For the compatible strings below the following supplies are required:
97 "qcom,msm8916-mss-pil",
102 Value type: <phandle>
103 Definition: reference to the regulators to be held on behalf of the
104 booting of the Hexagon core
106 For the compatible string below the following supplies are required:
107 "qcom,msm8974-mss-pil"
113 Value type: <phandle>
114 Definition: reference to the regulators to be held on behalf of the
115 booting of the Hexagon core
117 For the compatible string below the following supplies are required:
118 "qcom,msm8996-mss-pil"
121 Value type: <phandle>
122 Definition: reference to the regulators to be held on behalf of the
123 booting of the Hexagon core
127 Value type: <phandle>
128 Definition: reference to power-domains that match power-domain-names
130 - power-domain-names:
132 Value type: <stringlist>
133 Definition: The power-domains needed depend on the compatible string:
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:
142 must be "cx", "mx", "mss", "load_state"
146 Value type: <phandle>
147 Definition: reference to the smem state for requesting the Hexagon to
150 - qcom,smem-state-names:
152 Value type: <stringlist>
153 Definition: must be "stop"
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
163 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
164 the memory regions used by the Hexagon firmware. Each sub-node must contain:
168 Value type: <phandle>
169 Definition: reference to the reserved-memory for the region
171 The Hexagon node may also have an subnode named either "smd-edge" or
172 "glink-edge" that describes the communication edge, channels and devices
173 related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
174 ../soc/qcom/qcom,glink.txt for details on how to describe these.
177 The following example describes the resources needed to boot control the
178 Hexagon, as it is found on MSM8974 boards.
180 modem-rproc@fc880000 {
181 compatible = "qcom,q6v5-pil";
182 reg = <0xfc880000 0x100>,
184 reg-names = "qdsp6", "rmb";
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",
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";
202 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
204 resets = <&gcc GCC_MSS_RESTART>;
205 reset-names = "mss_restart";
207 cx-supply = <&pm8841_s2>;
208 mss-supply = <&pm8841_s3>;
209 mx-supply = <&pm8841_s1>;
210 pll-supply = <&pm8941_l12>;
212 qcom,smem-states = <&modem_smp2p_out 0>;
213 qcom,smem-state-names = "stop";
216 memory-region = <&mba_region>;
220 memory-region = <&mpss_region>;