blob: 401e49ebee39c4c8a7ad1fe5b3040d35171ed6db [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"
Sibi Sankarfb220222018-05-21 22:57:11 +053015 "qcom,sdm845-mss-pil"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070016
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: must list the watchdog, fatal IRQs ready, handover and
32 stop-ack IRQs
33
34- interrupt-names:
35 Usage: required
36 Value type: <stringlist>
37 Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
38
Sibi Sankara5cb1ee2018-12-28 10:18:18 +053039- firmware-name:
40 Usage: optional
41 Value type: <stringlist>
42 Definition: must list the relative firmware image paths for mba and
43 modem. They are used for booting and authenticating the
44 Hexagon core.
45
Bjorn Andersson3b76df42016-06-20 14:28:42 -070046- clocks:
47 Usage: required
48 Value type: <phandle>
Sibi Sankar2808cd52018-12-29 00:23:01 +053049 Definition: reference to the clocks that match clock-names
Bjorn Andersson3b76df42016-06-20 14:28:42 -070050
51- clock-names:
52 Usage: required
53 Value type: <stringlist>
Sibi Sankar2808cd52018-12-29 00:23:01 +053054 Definition: The clocks needed depend on the compatible string:
55 qcom,ipq8074-wcss-pil:
56 no clock names required
57 qcom,q6v5-pil:
58 qcom,msm8916-mss-pil:
59 qcom,msm8974-mss-pil:
60 must be "iface", "bus", "mem", "xo"
Sibi Sankar0f97dbb2018-12-29 00:23:02 +053061 qcom,msm8996-mss-pil:
62 must be "iface", "bus", "mem", "xo", "gpll0_mss",
63 "snoc_axi", "mnoc_axi", "pnoc", "qdss"
Sibi Sankar2808cd52018-12-29 00:23:01 +053064 qcom,sdm845-mss-pil:
65 must be "iface", "bus", "mem", "xo", "gpll0_mss",
66 "snoc_axi", "mnoc_axi", "prng"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070067
68- resets:
69 Usage: required
70 Value type: <phandle>
71 Definition: reference to the reset-controller for the modem sub-system
Sricharan R3a3d4162018-06-07 22:57:11 +053072 reference to the list of 3 reset-controllers for the
73 wcss sub-system
Sibi Sankar9a669612018-08-30 00:42:13 +053074 reference to the list of 2 reset-controllers for the modem
75 sub-system on SDM845 SoCs
Bjorn Andersson3b76df42016-06-20 14:28:42 -070076
77- reset-names:
78 Usage: required
79 Value type: <stringlist>
Sricharan R3a3d4162018-06-07 22:57:11 +053080 Definition: must be "mss_restart" for the modem sub-system
Sibi Sankarf8611642018-08-30 00:42:12 +053081 must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
82 for the wcss sub-system
Sibi Sankar9a669612018-08-30 00:42:13 +053083 must be "mss_restart", "pdc_reset" for the modem
84 sub-system on SDM845 SoCs
Bjorn Andersson3b76df42016-06-20 14:28:42 -070085
Sibi Sankar688c4372018-12-29 00:23:04 +053086For the compatible strings below the following supplies are required:
87 "qcom,q6v5-pil"
88 "qcom,msm8916-mss-pil",
89- cx-supply:
90- mx-supply:
91- pll-supply:
92 Usage: required
93 Value type: <phandle>
94 Definition: reference to the regulators to be held on behalf of the
95 booting of the Hexagon core
96
97For the compatible string below the following supplies are required:
98 "qcom,msm8974-mss-pil"
Bjorn Andersson3b76df42016-06-20 14:28:42 -070099- cx-supply:
100- mss-supply:
101- mx-supply:
102- pll-supply:
103 Usage: required
104 Value type: <phandle>
105 Definition: reference to the regulators to be held on behalf of the
106 booting of the Hexagon core
107
Sibi Sankar688c4372018-12-29 00:23:04 +0530108For the compatible string below the following supplies are required:
109 "qcom,msm8996-mss-pil"
110- pll-supply:
111 Usage: required
112 Value type: <phandle>
113 Definition: reference to the regulators to be held on behalf of the
114 booting of the Hexagon core
115
Sibi Sankarf2951bb2018-12-29 00:23:06 +0530116- power-domains:
117 Usage: required
118 Value type: <phandle>
119 Definition: reference to power-domains that match power-domain-names
120
121- power-domain-names:
122 Usage: required
123 Value type: <stringlist>
124 Definition: The power-domains needed depend on the compatible string:
125 qcom,q6v5-pil:
126 qcom,ipq8074-wcss-pil:
127 qcom,msm8916-mss-pil:
128 qcom,msm8974-mss-pil:
129 no power-domain names required
130 qcom,msm8996-mss-pil:
131 must be "cx", "mx"
132 qcom,sdm845-mss-pil:
133 must be "cx", "mx", "mss", "load_state"
134
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700135- qcom,smem-states:
136 Usage: required
137 Value type: <phandle>
138 Definition: reference to the smem state for requesting the Hexagon to
139 shut down
140
141- qcom,smem-state-names:
142 Usage: required
143 Value type: <stringlist>
144 Definition: must be "stop"
145
146- qcom,halt-regs:
147 Usage: required
148 Value type: <prop-encoded-array>
149 Definition: a phandle reference to a syscon representing TCSR followed
150 by the three offsets within syscon for q6, modem and nc
151 halt registers.
152
153= SUBNODES:
154The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
155the memory regions used by the Hexagon firmware. Each sub-node must contain:
156
157- memory-region:
158 Usage: required
159 Value type: <phandle>
160 Definition: reference to the reserved-memory for the region
161
Bjorn Andersson2b41d6c2017-08-29 16:13:36 -0700162The Hexagon node may also have an subnode named either "smd-edge" or
163"glink-edge" that describes the communication edge, channels and devices
164related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
165../soc/qcom/qcom,glink.txt for details on how to describe these.
166
Bjorn Andersson3b76df42016-06-20 14:28:42 -0700167= EXAMPLE
168The following example describes the resources needed to boot control the
169Hexagon, as it is found on MSM8974 boards.
170
171 modem-rproc@fc880000 {
172 compatible = "qcom,q6v5-pil";
173 reg = <0xfc880000 0x100>,
174 <0xfc820000 0x020>;
175 reg-names = "qdsp6", "rmb";
176
177 interrupts-extended = <&intc 0 24 1>,
178 <&modem_smp2p_in 0 0>,
179 <&modem_smp2p_in 1 0>,
180 <&modem_smp2p_in 2 0>,
181 <&modem_smp2p_in 3 0>;
182 interrupt-names = "wdog",
183 "fatal",
184 "ready",
185 "handover",
186 "stop-ack";
187
188 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
189 <&gcc GCC_MSS_CFG_AHB_CLK>,
190 <&gcc GCC_BOOT_ROM_AHB_CLK>;
191 clock-names = "iface", "bus", "mem";
192
193 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
194
195 resets = <&gcc GCC_MSS_RESTART>;
196 reset-names = "mss_restart";
197
198 cx-supply = <&pm8841_s2>;
199 mss-supply = <&pm8841_s3>;
200 mx-supply = <&pm8841_s1>;
201 pll-supply = <&pm8941_l12>;
202
203 qcom,smem-states = <&modem_smp2p_out 0>;
204 qcom,smem-state-names = "stop";
205
206 mba {
207 memory-region = <&mba_region>;
208 };
209
210 mpss {
211 memory-region = <&mpss_region>;
212 };
213 };