Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 1 | Qualcomm Technologies Inc MSS QDSP6v5 Peripheral Image Loader |
| 2 | |
| 3 | pil-qdsp6v5-mss is a peripheral image loader (PIL) driver. It is used for |
| 4 | loading QDSP6v5 (Hexagon) firmware images for modem subsystems into memory and |
| 5 | preparing the subsystem's processor to execute code. It's also responsible for |
| 6 | shutting down the processor when it's not needed. |
| 7 | |
| 8 | Required 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 Yan | 0e660cb | 2017-05-01 11:13:14 -0700 | [diff] [blame] | 19 | "pdc_sync" is the power domain register introduced in |
| 20 | sdm845 for power domain of subsystems. |
Kyle Yan | 05f6e10 | 2017-04-25 18:30:04 -0700 | [diff] [blame] | 21 | If alternative reset is required, "alt_reset" maps to |
| 22 | mss_alt_ares. |
Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 23 | - 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 | |
| 30 | Optional 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 Gupta | 73e2ed9 | 2016-12-02 13:59:59 -0800 | [diff] [blame] | 86 | - qcom,qdsp6v62-1-4: Boolean- Present if the qdsp version is v62 1.4 |
Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 87 | - qcom,qdsp6v62-1-5: Boolean- Present if the qdsp version is v62 1.5 |
Kyle Yan | b503d7e | 2016-10-18 11:08:07 -0700 | [diff] [blame] | 88 | - qcom,qdsp6v65-1-0: Boolean- Present if the qdsp version is v65 1.0 |
Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 89 | - 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. |
| 93 | |
Puja Gupta | 6caaa23 | 2016-05-04 12:03:31 -0700 | [diff] [blame] | 94 | One child node to represent the MBA image may be specified, when the MBA image |
| 95 | needs to be loaded in a specifically carved out memory region. |
| 96 | |
| 97 | Required properties: |
| 98 | - compatible: Must be "qcom,pil-mba-mem" |
| 99 | - memory-region: A phandle that points to a reserved memory where the MBA image will be loaded. |
| 100 | |
Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 101 | Example: |
| 102 | qcom,mss@fc880000 { |
| 103 | compatible = "qcom,pil-q6v5-mss"; |
| 104 | reg = <0xfc880000 0x100>, |
| 105 | <0xfd485000 0x400>, |
| 106 | <0xfc820000 0x020>, |
| 107 | <0xfc401680 0x004>; |
| 108 | reg-names = "qdsp6_base", "halt_base", "rmb_base", |
| 109 | "restart_reg"; |
| 110 | interrupts = <0 24 1>; |
| 111 | vdd_mss-supply = <&pm8841_s3>; |
| 112 | vdd_cx-supply = <&pm8841_s2>; |
| 113 | vdd_cx-voltage = <7>; |
| 114 | vdd_mx-supply = <&pm8841_s1>; |
| 115 | vdd_mx-uV = <105000>; |
| 116 | |
| 117 | clocks = <&clock_rpm clk_xo_pil_mss_clk>, |
| 118 | <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, |
| 119 | <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, |
| 120 | <&clock_gcc clk_gcc_boot_rom_ahb_clk>; |
| 121 | clock-names = "xo", "iface_clk", "bus_clk", "mem_clk"; |
| 122 | qcom,proxy-clock-names = "xo"; |
| 123 | qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk"; |
| 124 | |
| 125 | qcom,is-not-loadable; |
| 126 | qcom,firmware-name = "mba"; |
| 127 | qcom,pil-self-auth; |
| 128 | qcom,mba-image-is-not-elf; |
| 129 | qcom,override-acc; |
| 130 | |
| 131 | /* GPIO inputs from mss */ |
| 132 | qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; |
| 133 | qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>; |
| 134 | qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; |
| 135 | |
| 136 | /* GPIO output to mss */ |
| 137 | qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; |
| 138 | qcom,ssctl-instance-id = <12>; |
| 139 | qcom,sysmon-id = <0>; |
Puja Gupta | 6caaa23 | 2016-05-04 12:03:31 -0700 | [diff] [blame] | 140 | |
| 141 | qcom,mba-mem@0 { |
| 142 | compatible = "qcom,pil-mba-mem"; |
| 143 | memory-region = <&peripheral_mem>; |
| 144 | }; |
Kyle Yan | e45fa02 | 2016-08-29 11:40:26 -0700 | [diff] [blame] | 145 | }; |