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,msm8916-mss-pil",
12 "qcom,msm8974-mss-pil"
13 "qcom,msm8996-mss-pil"
17 Value type: <prop-encoded-array>
18 Definition: must specify the base address and size of the qdsp6 and
23 Value type: <stringlist>
24 Definition: must be "q6dsp" and "rmb"
26 - interrupts-extended:
28 Value type: <prop-encoded-array>
29 Definition: must list the watchdog, fatal IRQs ready, handover and
34 Value type: <stringlist>
35 Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
40 Definition: reference to the iface, bus and mem clocks to be held on
41 behalf of the booting of the Hexagon core
45 Value type: <stringlist>
46 Definition: must be "iface", "bus", "mem"
51 Definition: reference to the reset-controller for the modem sub-system
55 Value type: <stringlist>
56 Definition: must be "mss_restart"
64 Definition: reference to the regulators to be held on behalf of the
65 booting of the Hexagon core
70 Definition: reference to the smem state for requesting the Hexagon to
73 - qcom,smem-state-names:
75 Value type: <stringlist>
76 Definition: must be "stop"
80 Value type: <prop-encoded-array>
81 Definition: a phandle reference to a syscon representing TCSR followed
82 by the three offsets within syscon for q6, modem and nc
86 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
87 the memory regions used by the Hexagon firmware. Each sub-node must contain:
92 Definition: reference to the reserved-memory for the region
94 The Hexagon node may also have an subnode named either "smd-edge" or
95 "glink-edge" that describes the communication edge, channels and devices
96 related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
97 ../soc/qcom/qcom,glink.txt for details on how to describe these.
100 The following example describes the resources needed to boot control the
101 Hexagon, as it is found on MSM8974 boards.
103 modem-rproc@fc880000 {
104 compatible = "qcom,q6v5-pil";
105 reg = <0xfc880000 0x100>,
107 reg-names = "qdsp6", "rmb";
109 interrupts-extended = <&intc 0 24 1>,
110 <&modem_smp2p_in 0 0>,
111 <&modem_smp2p_in 1 0>,
112 <&modem_smp2p_in 2 0>,
113 <&modem_smp2p_in 3 0>;
114 interrupt-names = "wdog",
120 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
121 <&gcc GCC_MSS_CFG_AHB_CLK>,
122 <&gcc GCC_BOOT_ROM_AHB_CLK>;
123 clock-names = "iface", "bus", "mem";
125 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
127 resets = <&gcc GCC_MSS_RESTART>;
128 reset-names = "mss_restart";
130 cx-supply = <&pm8841_s2>;
131 mss-supply = <&pm8841_s3>;
132 mx-supply = <&pm8841_s1>;
133 pll-supply = <&pm8941_l12>;
135 qcom,smem-states = <&modem_smp2p_out 0>;
136 qcom,smem-state-names = "stop";
139 memory-region = <&mba_region>;
143 memory-region = <&mpss_region>;