1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
Qualcomm Hexagon Peripheral Image Loader
This document defines the binding for a component that loads and boots firmware
on the Qualcomm Hexagon core.
- compatible:
Usage: required
Value type: <string>
Definition: must be one of:
"qcom,q6v5-pil",
"qcom,ipq8074-wcss-pil"
"qcom,msm8916-mss-pil",
"qcom,msm8974-mss-pil"
"qcom,msm8996-mss-pil"
"qcom,sdm845-mss-pil"
- reg:
Usage: required
Value type: <prop-encoded-array>
Definition: must specify the base address and size of the qdsp6 and
rmb register blocks
- reg-names:
Usage: required
Value type: <stringlist>
Definition: must be "q6dsp" and "rmb"
- interrupts-extended:
Usage: required
Value type: <prop-encoded-array>
Definition: must list the watchdog, fatal IRQs ready, handover and
stop-ack IRQs
- interrupt-names:
Usage: required
Value type: <stringlist>
Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
- clocks:
Usage: required
Value type: <phandle>
Definition: reference to the iface, bus and mem clocks to be held on
behalf of the booting of the Hexagon core
- clock-names:
Usage: required
Value type: <stringlist>
Definition: must be "iface", "bus", "mem"
- resets:
Usage: required
Value type: <phandle>
Definition: reference to the reset-controller for the modem sub-system
reference to the list of 3 reset-controllers for the
wcss sub-system
- reset-names:
Usage: required
Value type: <stringlist>
Definition: must be "mss_restart" for the modem sub-system
Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
for the wcss syb-system
- cx-supply:
- mss-supply:
- mx-supply:
- pll-supply:
Usage: required
Value type: <phandle>
Definition: reference to the regulators to be held on behalf of the
booting of the Hexagon core
- qcom,smem-states:
Usage: required
Value type: <phandle>
Definition: reference to the smem state for requesting the Hexagon to
shut down
- qcom,smem-state-names:
Usage: required
Value type: <stringlist>
Definition: must be "stop"
- qcom,halt-regs:
Usage: required
Value type: <prop-encoded-array>
Definition: a phandle reference to a syscon representing TCSR followed
by the three offsets within syscon for q6, modem and nc
halt registers.
= SUBNODES:
The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
the memory regions used by the Hexagon firmware. Each sub-node must contain:
- memory-region:
Usage: required
Value type: <phandle>
Definition: reference to the reserved-memory for the region
The Hexagon node may also have an subnode named either "smd-edge" or
"glink-edge" that describes the communication edge, channels and devices
related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
../soc/qcom/qcom,glink.txt for details on how to describe these.
= EXAMPLE
The following example describes the resources needed to boot control the
Hexagon, as it is found on MSM8974 boards.
modem-rproc@fc880000 {
compatible = "qcom,q6v5-pil";
reg = <0xfc880000 0x100>,
<0xfc820000 0x020>;
reg-names = "qdsp6", "rmb";
interrupts-extended = <&intc 0 24 1>,
<&modem_smp2p_in 0 0>,
<&modem_smp2p_in 1 0>,
<&modem_smp2p_in 2 0>,
<&modem_smp2p_in 3 0>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack";
clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
<&gcc GCC_MSS_CFG_AHB_CLK>,
<&gcc GCC_BOOT_ROM_AHB_CLK>;
clock-names = "iface", "bus", "mem";
qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
resets = <&gcc GCC_MSS_RESTART>;
reset-names = "mss_restart";
cx-supply = <&pm8841_s2>;
mss-supply = <&pm8841_s3>;
mx-supply = <&pm8841_s1>;
pll-supply = <&pm8941_l12>;
qcom,smem-states = <&modem_smp2p_out 0>;
qcom,smem-state-names = "stop";
mba {
memory-region = <&mba_region>;
};
mpss {
memory-region = <&mpss_region>;
};
};
|