blob: 271703fbaedb008b2499eaaebe0ae3554da2561a [file] [log] [blame]
Kyle Yane45fa022016-08-29 11:40:26 -07001Qualcomm Technologies Inc MSS QDSP6v5 Peripheral Image Loader
2
3pil-qdsp6v5-mss is a peripheral image loader (PIL) driver. It is used for
4loading QDSP6v5 (Hexagon) firmware images for modem subsystems into memory and
5preparing the subsystem's processor to execute code. It's also responsible for
6shutting down the processor when it's not needed.
7
8Required properties:
9- compatible: Must be "qcom,pil-q6v5-mss" or "qcom,pil-q6v55-mss" or
10 "qcom,pil-q6v56-mss".
11- reg: Pairs of physical base addresses and region sizes of
12 memory mapped registers.
13- reg-names: Names of the bases for the above registers. "qdsp6_base",
14 "rmb_base", "restart_reg" or "restart_reg_sec"(optional
15 for secure mode) are expected.
16 If "halt_base" is in same 4K pages this register then
17 this will be defined else "halt_q6", "halt_modem",
18 "halt_nc" is required.
Kyle Yan0e660cb2017-05-01 11:13:14 -070019 "pdc_sync" is the power domain register introduced in
20 sdm845 for power domain of subsystems.
Kyle Yan05f6e102017-04-25 18:30:04 -070021 If alternative reset is required, "alt_reset" maps to
22 mss_alt_ares.
Kyle Yane45fa022016-08-29 11:40:26 -070023- interrupts: The modem watchdog interrupt
24- vdd_cx-supply: Reference to the regulator that supplies the vdd_cx domain.
25- vdd_cx-voltage: Voltage corner/level(max) for cx rail.
26- vdd_mx-supply: Reference to the regulator that supplies the memory rail.
27- vdd_mx-uV: Voltage setting for the mx rail.
28- qcom,firmware-name: Base name of the firmware image. Ex. "mdsp"
29
30Optional properties:
31- vdd_mss-supply: Reference to the regulator that supplies the processor.
32 This may be a shared regulator that is already voted
33 on in the PIL proxy voting code (and also managed by the
34 modem on its own), hence we mark it as as optional.
35- vdd_pll-supply: Reference to the regulator that supplies the PLL's rail.
36- qcom,vdd_pll: Voltage to be set for the PLL's rail.
37- reg-names: "cxrail_bhs_reg" - control register for modem power
38 domain.
39- clocks: Array of <clock_controller_phandle clock_reference> listing
40 all the clocks that are accesed by this subsystem.
41- qcom,proxy-clock-names: Names of the clocks that need to be turned on/off during
42 proxy voting/unvoting.
43- qcom,active-clock-names: Names of the clocks that need to be turned on for the
44 subsystem to run. Turned off when the subsystem is shutdown.
45- clock-names: Names of all the clocks that are accessed by the subsystem.
46- qcom,is-not-loadable: Boolean- Present if the image does not need to
47 be loaded.
48- qcom,pil-self-auth: Boolean- True if authentication is required.
49- qcom,mem-protect-id: Virtual ID used by PIL to call into TZ/HYP to protect/unprotect
50 subsystem related memory.
51- qcom,gpio-err-fatal: GPIO used by the modem to indicate error fatal to the apps.
52- qcom,gpio-err-ready: GPIO used by the modem to indicate error ready to the apps.
53- qcom,gpio-proxy-unvote: GPIO used by the modem to trigger proxy unvoting in
54 the apps.
55- qcom,gpio-force-stop: GPIO used by the apps to force the modem to shutdown.
56- qcom,gpio-stop-ack: GPIO used by the modem to ack force stop or a graceful stop
57 to the apps.
58- qcom,gpio-ramdump-disable: GPIO used by the modem to inform the apps that ramdump
59 collection should be disabled.
60- qcom,gpio-shutdown-ack: GPIO used by the modem to indicate that it has done the
61 necessary cleanup and that the apps can move forward with
62 the shutdown sequence.
63- qcom,restart-group: List of subsystems that will need to restart together.
64- qcom,mba-image-is-not-elf: Boolean- Present if MBA image doesn't use the ELF
65 format.
66- qcom,ssctl-instance-id: Instance id used by the subsystem to connect with the SSCTL
67 service.
68- qcom,sysmon-id: platform device id that sysmon is probed with for the subsystem.
69- qcom,override-acc: Boolean- Present if we need to override the default ACC settings
70- qcom,ahb-clk-vote: Boolean- Present if we need to remove the vote for the mss_cfg_ahb
71 clock after the modem boots up
72- qcom,pnoc-clk-vote: Boolean- Present if the modem needs the PNOC bus to be
73 clocked before it boots up
74- qcom,qdsp6v56-1-3: Boolean- Present if the qdsp version is v56 1.3
75- qcom,qdsp6v56-1-5: Boolean- Present if the qdsp version is v56 1.5
76- qcom,edge: GLINK logical name of the remote subsystem
77- qcom,pil-force-shutdown: Boolean. If set, the SSR framework will not trigger graceful shutdown
78 on behalf of the subsystem driver.
79- qcom,pil-mss-memsetup: Boolean - True if TZ need to be informed of modem start address and size.
80- qcom,pas-id: pas_id of the subsystem.
81- qcom,qdsp6v56-1-8: Boolean- Present if the qdsp version is v56 1.8
82- qcom,qdsp6v56-1-8-inrush-current: Boolean- Present if the qdsp version is V56 1.8 and has in-rush
83 current issue.
84- qcom,qdsp6v61-1-1: Boolean- Present if the qdsp version is v61 1.1
85- qcom,qdsp6v62-1-2: Boolean- Present if the qdsp version is v62 1.2
Puja Gupta73e2ed92016-12-02 13:59:59 -080086- qcom,qdsp6v62-1-4: Boolean- Present if the qdsp version is v62 1.4
Kyle Yane45fa022016-08-29 11:40:26 -070087- qcom,qdsp6v62-1-5: Boolean- Present if the qdsp version is v62 1.5
Kyle Yanb503d7e2016-10-18 11:08:07 -070088- qcom,qdsp6v65-1-0: Boolean- Present if the qdsp version is v65 1.0
Kyle Yane45fa022016-08-29 11:40:26 -070089- qcom,mx-spike-wa: Boolean- Present if we need to assert QDSP6 I/O clamp, memory
90 wordline clamp, and compiler memory clamp during MSS restart.
91- qcom,qdsp6v56-1-10: Boolean- Present if the qdsp version is v56 1.10
92- qcom,override-acc-1: Override the default ACC settings with this value if present.
Avaneesh Kumar Dwivediec6d1392017-07-06 21:18:03 +053093- qcom,minidump-id: Unique id for each subsystem
Kyle Yane45fa022016-08-29 11:40:26 -070094
Puja Gupta6caaa232016-05-04 12:03:31 -070095One child node to represent the MBA image may be specified, when the MBA image
96needs to be loaded in a specifically carved out memory region.
97
98Required properties:
99- compatible: Must be "qcom,pil-mba-mem"
100- memory-region: A phandle that points to a reserved memory where the MBA image will be loaded.
101
Kyle Yane45fa022016-08-29 11:40:26 -0700102Example:
103 qcom,mss@fc880000 {
104 compatible = "qcom,pil-q6v5-mss";
105 reg = <0xfc880000 0x100>,
106 <0xfd485000 0x400>,
107 <0xfc820000 0x020>,
108 <0xfc401680 0x004>;
109 reg-names = "qdsp6_base", "halt_base", "rmb_base",
110 "restart_reg";
111 interrupts = <0 24 1>;
112 vdd_mss-supply = <&pm8841_s3>;
113 vdd_cx-supply = <&pm8841_s2>;
114 vdd_cx-voltage = <7>;
115 vdd_mx-supply = <&pm8841_s1>;
116 vdd_mx-uV = <105000>;
117
118 clocks = <&clock_rpm clk_xo_pil_mss_clk>,
119 <&clock_gcc clk_gcc_mss_cfg_ahb_clk>,
120 <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>,
121 <&clock_gcc clk_gcc_boot_rom_ahb_clk>;
122 clock-names = "xo", "iface_clk", "bus_clk", "mem_clk";
123 qcom,proxy-clock-names = "xo";
124 qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk";
125
126 qcom,is-not-loadable;
127 qcom,firmware-name = "mba";
128 qcom,pil-self-auth;
129 qcom,mba-image-is-not-elf;
130 qcom,override-acc;
131
132 /* GPIO inputs from mss */
133 qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>;
134 qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>;
135 qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>;
136
137 /* GPIO output to mss */
138 qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>;
139 qcom,ssctl-instance-id = <12>;
140 qcom,sysmon-id = <0>;
Puja Gupta6caaa232016-05-04 12:03:31 -0700141
142 qcom,mba-mem@0 {
143 compatible = "qcom,pil-mba-mem";
144 memory-region = <&peripheral_mem>;
145 };
Kyle Yane45fa022016-08-29 11:40:26 -0700146 };