blob: 1f9a62e13ebe0215324ecb13f12a9b6836fd2a1c [file] [log] [blame]
Bjorn Andersson3b76df42016-06-20 14:28:42 -07001Qualcomm 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:
Avaneesh Kumar Dwivedi7a8ffe12016-12-30 19:24:00 +053010 "qcom,q6v5-pil",
Sricharan R3a3d4162018-06-07 22:57:11 +053011 "qcom,ipq8074-wcss-pil"
Avaneesh Kumar Dwivedi7a8ffe12016-12-30 19:24:00 +053012 "qcom,msm8916-mss-pil",
13 "qcom,msm8974-mss-pil"
Avaneesh Kumar Dwivedi9f058fa2017-10-24 21:22:27 +053014 "qcom,msm8996-mss-pil"
Jeffrey Hugoab1b1232019-10-31 19:44:35 -070015 "qcom,msm8998-mss-pil"
Sibi Sankar65518e92019-12-19 11:15:05 +053016 "qcom,sc7180-mss-pil"
Sibi Sankarfb220222018-05-21 22:57:11 +053017 "qcom,sdm845-mss-pil"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070018
19- reg:
20 Usage: required
21 Value type: <prop-encoded-array>
22 Definition: must specify the base address and size of the qdsp6 and
23 rmb register blocks
24
25- reg-names:
26 Usage: required
27 Value type: <stringlist>
28 Definition: must be "q6dsp" and "rmb"
29
30- interrupts-extended:
31 Usage: required
32 Value type: <prop-encoded-array>
Sibi Sankar05f9f572019-01-08 15:53:42 +053033 Definition: reference to the interrupts that match interrupt-names
Bjorn Andersson3b76df42016-06-20 14:28:42 -070034
35- interrupt-names:
36 Usage: required
37 Value type: <stringlist>
Sibi Sankar05f9f572019-01-08 15:53:42 +053038 Definition: The interrupts needed depends on the the compatible
39 string:
40 qcom,q6v5-pil:
41 qcom,ipq8074-wcss-pil:
42 qcom,msm8916-mss-pil:
43 qcom,msm8974-mss-pil:
44 must be "wdog", "fatal", "ready", "handover", "stop-ack"
45 qcom,msm8996-mss-pil:
Jeffrey Hugoab1b1232019-10-31 19:44:35 -070046 qcom,msm8998-mss-pil:
Sibi Sankar65518e92019-12-19 11:15:05 +053047 qcom,sc7180-mss-pil:
Sibi Sankar05f9f572019-01-08 15:53:42 +053048 qcom,sdm845-mss-pil:
49 must be "wdog", "fatal", "ready", "handover", "stop-ack",
50 "shutdown-ack"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070051
Sibi Sankara5cb1ee2018-12-28 10:18:18 +053052- firmware-name:
53 Usage: optional
54 Value type: <stringlist>
55 Definition: must list the relative firmware image paths for mba and
56 modem. They are used for booting and authenticating the
57 Hexagon core.
58
Bjorn Andersson3b76df42016-06-20 14:28:42 -070059- clocks:
60 Usage: required
61 Value type: <phandle>
Sibi Sankar2808cd52018-12-29 00:23:01 +053062 Definition: reference to the clocks that match clock-names
Bjorn Andersson3b76df42016-06-20 14:28:42 -070063
64- clock-names:
65 Usage: required
66 Value type: <stringlist>
Sibi Sankar2808cd52018-12-29 00:23:01 +053067 Definition: The clocks needed depend on the compatible string:
68 qcom,ipq8074-wcss-pil:
69 no clock names required
70 qcom,q6v5-pil:
71 qcom,msm8916-mss-pil:
72 qcom,msm8974-mss-pil:
73 must be "iface", "bus", "mem", "xo"
Sibi Sankar0f97dbb2018-12-29 00:23:02 +053074 qcom,msm8996-mss-pil:
75 must be "iface", "bus", "mem", "xo", "gpll0_mss",
76 "snoc_axi", "mnoc_axi", "pnoc", "qdss"
Jeffrey Hugoab1b1232019-10-31 19:44:35 -070077 qcom,msm8998-mss-pil:
78 must be "iface", "bus", "mem", "xo", "gpll0_mss",
79 "snoc_axi", "mnoc_axi", "qdss"
Sibi Sankar65518e92019-12-19 11:15:05 +053080 qcom,sc7180-mss-pil:
81 must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi",
Sibi Sankare62e3ac2020-04-15 20:21:09 +053082 "nav"
Sibi Sankar2808cd52018-12-29 00:23:01 +053083 qcom,sdm845-mss-pil:
84 must be "iface", "bus", "mem", "xo", "gpll0_mss",
85 "snoc_axi", "mnoc_axi", "prng"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070086
87- resets:
88 Usage: required
89 Value type: <phandle>
90 Definition: reference to the reset-controller for the modem sub-system
Sricharan R3a3d4162018-06-07 22:57:11 +053091 reference to the list of 3 reset-controllers for the
92 wcss sub-system
Sibi Sankar9a669612018-08-30 00:42:13 +053093 reference to the list of 2 reset-controllers for the modem
Sibi Sankar65518e92019-12-19 11:15:05 +053094 sub-system on SC7180, SDM845 SoCs
Bjorn Andersson3b76df42016-06-20 14:28:42 -070095
96- reset-names:
97 Usage: required
98 Value type: <stringlist>
Sricharan R3a3d4162018-06-07 22:57:11 +053099 Definition: must be "mss_restart" for the modem sub-system
Sibi Sankarf8611642018-08-30 00:42:12 +0530100 must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
101 for the wcss sub-system
Sibi Sankar9a669612018-08-30 00:42:13 +0530102 must be "mss_restart", "pdc_reset" for the modem
Sibi Sankar65518e92019-12-19 11:15:05 +0530103 sub-system on SC7180, SDM845 SoCs
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700104
Sibi Sankard964b0b2020-04-21 20:02:24 +0530105For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
106should be referenced as follows:
107- memory-region:
108 Usage: required
109 Value type: <phandle>
110 Definition: reference to the reserved-memory for the mba region followed
111 by the mpss region
112
Sibi Sankar688c4372018-12-29 00:23:04 +0530113For the compatible strings below the following supplies are required:
114 "qcom,q6v5-pil"
115 "qcom,msm8916-mss-pil",
116- cx-supply:
117- mx-supply:
118- pll-supply:
119 Usage: required
120 Value type: <phandle>
121 Definition: reference to the regulators to be held on behalf of the
122 booting of the Hexagon core
123
124For the compatible string below the following supplies are required:
125 "qcom,msm8974-mss-pil"
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700126- cx-supply:
127- mss-supply:
128- mx-supply:
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
Sibi Sankar688c4372018-12-29 00:23:04 +0530135For the compatible string below the following supplies are required:
136 "qcom,msm8996-mss-pil"
137- pll-supply:
138 Usage: required
139 Value type: <phandle>
140 Definition: reference to the regulators to be held on behalf of the
141 booting of the Hexagon core
142
Sibi Sankarf2951bb2018-12-29 00:23:06 +0530143- power-domains:
144 Usage: required
145 Value type: <phandle>
146 Definition: reference to power-domains that match power-domain-names
147
148- power-domain-names:
149 Usage: required
150 Value type: <stringlist>
151 Definition: The power-domains needed depend on the compatible string:
152 qcom,q6v5-pil:
153 qcom,ipq8074-wcss-pil:
154 qcom,msm8916-mss-pil:
155 qcom,msm8974-mss-pil:
156 no power-domain names required
157 qcom,msm8996-mss-pil:
Jeffrey Hugoab1b1232019-10-31 19:44:35 -0700158 qcom,msm8998-mss-pil:
Sibi Sankarf2951bb2018-12-29 00:23:06 +0530159 must be "cx", "mx"
Sibi Sankar65518e92019-12-19 11:15:05 +0530160 qcom,sc7180-mss-pil:
Sibi Sankarf2951bb2018-12-29 00:23:06 +0530161 qcom,sdm845-mss-pil:
162 must be "cx", "mx", "mss", "load_state"
163
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700164- qcom,smem-states:
165 Usage: required
166 Value type: <phandle>
167 Definition: reference to the smem state for requesting the Hexagon to
168 shut down
169
170- qcom,smem-state-names:
171 Usage: required
172 Value type: <stringlist>
173 Definition: must be "stop"
174
175- qcom,halt-regs:
176 Usage: required
177 Value type: <prop-encoded-array>
178 Definition: a phandle reference to a syscon representing TCSR followed
179 by the three offsets within syscon for q6, modem and nc
180 halt registers.
181
Sibi Sankar65518e92019-12-19 11:15:05 +0530182For the compatible strings below the following phandle references are required:
183 "qcom,sc7180-mss-pil"
Sibi Sankare62e3ac2020-04-15 20:21:09 +0530184- qcom,spare-regs:
Sibi Sankar65518e92019-12-19 11:15:05 +0530185 Usage: required
186 Value type: <prop-encoded-array>
Sibi Sankare62e3ac2020-04-15 20:21:09 +0530187 Definition: a phandle reference to a syscon representing TCSR followed
188 by the offset within syscon for conn_box_spare0 register
189 used by the modem sub-system running on SC7180 SoC.
Sibi Sankar65518e92019-12-19 11:15:05 +0530190
Sibi Sankar23cf5152020-04-21 00:03:53 +0530191The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
192on platforms which do not have TrustZone.
193
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700194= SUBNODES:
195The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
196the memory regions used by the Hexagon firmware. Each sub-node must contain:
197
198- memory-region:
199 Usage: required
200 Value type: <phandle>
201 Definition: reference to the reserved-memory for the region
202
Bjorn Andersson2b41d6c2017-08-29 16:13:36 -0700203The Hexagon node may also have an subnode named either "smd-edge" or
204"glink-edge" that describes the communication edge, channels and devices
205related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
206../soc/qcom/qcom,glink.txt for details on how to describe these.
207
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700208= EXAMPLE
209The following example describes the resources needed to boot control the
210Hexagon, as it is found on MSM8974 boards.
211
212 modem-rproc@fc880000 {
213 compatible = "qcom,q6v5-pil";
214 reg = <0xfc880000 0x100>,
215 <0xfc820000 0x020>;
216 reg-names = "qdsp6", "rmb";
217
218 interrupts-extended = <&intc 0 24 1>,
219 <&modem_smp2p_in 0 0>,
220 <&modem_smp2p_in 1 0>,
221 <&modem_smp2p_in 2 0>,
222 <&modem_smp2p_in 3 0>;
223 interrupt-names = "wdog",
224 "fatal",
225 "ready",
226 "handover",
227 "stop-ack";
228
229 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
230 <&gcc GCC_MSS_CFG_AHB_CLK>,
231 <&gcc GCC_BOOT_ROM_AHB_CLK>;
232 clock-names = "iface", "bus", "mem";
233
234 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
235
236 resets = <&gcc GCC_MSS_RESTART>;
237 reset-names = "mss_restart";
238
239 cx-supply = <&pm8841_s2>;
240 mss-supply = <&pm8841_s3>;
241 mx-supply = <&pm8841_s1>;
242 pll-supply = <&pm8941_l12>;
243
244 qcom,smem-states = <&modem_smp2p_out 0>;
245 qcom,smem-state-names = "stop";
246
247 mba {
248 memory-region = <&mba_region>;
249 };
250
251 mpss {
252 memory-region = <&mpss_region>;
253 };
254 };