Back to home page

OSCL-LXR

 
 

    


0001 Qualcomm Hexagon Peripheral Image Loader
0002 
0003 This document defines the binding for a component that loads and boots firmware
0004 on the Qualcomm Hexagon core.
0005 
0006 - compatible:
0007         Usage: required
0008         Value type: <string>
0009         Definition: must be one of:
0010                     "qcom,q6v5-pil",
0011                     "qcom,ipq8074-wcss-pil"
0012                     "qcom,qcs404-wcss-pil"
0013                     "qcom,msm8916-mss-pil",
0014                     "qcom,msm8974-mss-pil"
0015                     "qcom,msm8996-mss-pil"
0016                     "qcom,msm8998-mss-pil"
0017                     "qcom,sdm845-mss-pil"
0018 
0019 - reg:
0020         Usage: required
0021         Value type: <prop-encoded-array>
0022         Definition: must specify the base address and size of the qdsp6 and
0023                     rmb register blocks
0024 
0025 - reg-names:
0026         Usage: required
0027         Value type: <stringlist>
0028         Definition: must be "q6dsp" and "rmb"
0029 
0030 - interrupts-extended:
0031         Usage: required
0032         Value type: <prop-encoded-array>
0033         Definition: reference to the interrupts that match interrupt-names
0034 
0035 - interrupt-names:
0036         Usage: required
0037         Value type: <stringlist>
0038         Definition: The interrupts needed depends on the compatible
0039                     string:
0040         qcom,q6v5-pil:
0041         qcom,ipq8074-wcss-pil:
0042         qcom,qcs404-wcss-pil:
0043         qcom,msm8916-mss-pil:
0044         qcom,msm8974-mss-pil:
0045                     must be "wdog", "fatal", "ready", "handover", "stop-ack"
0046         qcom,msm8996-mss-pil:
0047         qcom,msm8998-mss-pil:
0048         qcom,sdm845-mss-pil:
0049                     must be "wdog", "fatal", "ready", "handover", "stop-ack",
0050                     "shutdown-ack"
0051 
0052 - firmware-name:
0053         Usage: optional
0054         Value type: <stringlist>
0055         Definition: must list the relative firmware image paths for mba and
0056                     modem. They are used for booting and authenticating the
0057                     Hexagon core.
0058 
0059 - clocks:
0060         Usage: required
0061         Value type: <phandle>
0062         Definition: reference to the clocks that match clock-names
0063 
0064 - clock-names:
0065         Usage: required
0066         Value type: <stringlist>
0067         Definition: The clocks needed depend on the compatible string:
0068         qcom,ipq8074-wcss-pil:
0069                     no clock names required
0070         qcom,qcs404-wcss-pil:
0071                     must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr",
0072                     "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc",
0073                     "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc",
0074                     "lcc_axim_cbc", "lcc_bcr_sleep"
0075         qcom,q6v5-pil:
0076         qcom,msm8916-mss-pil:
0077         qcom,msm8974-mss-pil:
0078                     must be "iface", "bus", "mem", "xo"
0079         qcom,msm8996-mss-pil:
0080                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
0081                     "snoc_axi", "mnoc_axi", "pnoc", "qdss"
0082         qcom,msm8998-mss-pil:
0083                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
0084                     "snoc_axi", "mnoc_axi", "qdss"
0085         qcom,sdm845-mss-pil:
0086                     must be "iface", "bus", "mem", "xo", "gpll0_mss",
0087                     "snoc_axi", "mnoc_axi", "prng"
0088 
0089 - resets:
0090         Usage: required
0091         Value type: <phandle>
0092         Definition: reference to the reset-controller for the modem sub-system
0093                     reference to the list of 3 reset-controllers for the
0094                     wcss sub-system
0095                     reference to the list of 2 reset-controllers for the modem
0096                     sub-system on SDM845 SoCs
0097 
0098 - reset-names:
0099         Usage: required
0100         Value type: <stringlist>
0101         Definition: must be "mss_restart" for the modem sub-system
0102                     must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
0103                     for the wcss sub-system
0104                     must be "mss_restart", "pdc_reset" for the modem
0105                     sub-system on SDM845 SoCs
0106 
0107 For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
0108 should be referenced as follows:
0109 - memory-region:
0110         Usage: required
0111         Value type: <phandle>
0112         Definition: reference to the reserved-memory for the mba region followed
0113                     by the mpss region
0114 
0115 For the compatible strings below the following supplies are required:
0116   "qcom,q6v5-pil"
0117   "qcom,msm8916-mss-pil",
0118 - cx-supply: (deprecated, use power domain instead)
0119 - mx-supply: (deprecated, use power domain instead)
0120 - pll-supply:
0121         Usage: required
0122         Value type: <phandle>
0123         Definition: reference to the regulators to be held on behalf of the
0124                     booting of the Hexagon core
0125 
0126 For the compatible string below the following supplies are required:
0127   "qcom,msm8974-mss-pil"
0128 - cx-supply: (deprecated, use power domain instead)
0129 - mss-supply:
0130 - mx-supply: (deprecated, use power domain instead)
0131 - pll-supply:
0132         Usage: required
0133         Value type: <phandle>
0134         Definition: reference to the regulators to be held on behalf of the
0135                     booting of the Hexagon core
0136 
0137 For the compatible string below the following supplies are required:
0138   "qcom,qcs404-wcss-pil"
0139 - cx-supply:
0140         Usage: required
0141         Value type: <phandle>
0142         Definition: reference to the regulators to be held on behalf of the
0143                     booting of the Hexagon core
0144 
0145 For the compatible string below the following supplies are required:
0146   "qcom,msm8996-mss-pil"
0147 - pll-supply:
0148         Usage: required
0149         Value type: <phandle>
0150         Definition: reference to the regulators to be held on behalf of the
0151                     booting of the Hexagon core
0152 
0153 - power-domains:
0154         Usage: required
0155         Value type: <phandle>
0156         Definition: reference to power-domains that match power-domain-names
0157 
0158 - power-domain-names:
0159         Usage: required
0160         Value type: <stringlist>
0161         Definition: The power-domains needed depend on the compatible string:
0162         qcom,ipq8074-wcss-pil:
0163                     no power-domain names required
0164         qcom,q6v5-pil:
0165         qcom,msm8916-mss-pil:
0166         qcom,msm8974-mss-pil:
0167         qcom,msm8996-mss-pil:
0168         qcom,msm8998-mss-pil:
0169                     must be "cx", "mx"
0170         qcom,sdm845-mss-pil:
0171                     must be "cx", "mx", "mss"
0172 
0173 - qcom,qmp:
0174         Usage: optional
0175         Value type: <phandle>
0176         Definition: reference to the AOSS side-channel message RAM.
0177 
0178 - qcom,smem-states:
0179         Usage: required
0180         Value type: <phandle>
0181         Definition: reference to the smem state for requesting the Hexagon to
0182                     shut down
0183 
0184 - qcom,smem-state-names:
0185         Usage: required
0186         Value type: <stringlist>
0187         Definition: must be "stop"
0188 
0189 - qcom,halt-regs:
0190         Usage: required
0191         Value type: <prop-encoded-array>
0192         Definition: a phandle reference to a syscon representing TCSR followed
0193                     by the three offsets within syscon for q6, modem and nc
0194                     halt registers.
0195 
0196 The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
0197 on platforms which do not have TrustZone.
0198 
0199 = SUBNODES:
0200 The Hexagon node must contain two subnodes, named "mba" and "mpss" representing
0201 the memory regions used by the Hexagon firmware. Each sub-node must contain:
0202 
0203 - memory-region:
0204         Usage: required
0205         Value type: <phandle>
0206         Definition: reference to the reserved-memory for the region
0207 
0208 The Hexagon node may also have an subnode named either "smd-edge" or
0209 "glink-edge" that describes the communication edge, channels and devices
0210 related to the Hexagon.  See ../soc/qcom/qcom,smd.yaml and
0211 ../soc/qcom/qcom,glink.txt for details on how to describe these.
0212 
0213 = EXAMPLE
0214 The following example describes the resources needed to boot control the
0215 Hexagon, as it is found on MSM8974 boards.
0216 
0217         remoteproc@fc880000 {
0218                 compatible = "qcom,msm8974-mss-pil";
0219                 reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
0220                 reg-names = "qdsp6", "rmb";
0221 
0222                 interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
0223                                       <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
0224                                       <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
0225                                       <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
0226                                       <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
0227                 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
0228 
0229                 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
0230                          <&gcc GCC_MSS_CFG_AHB_CLK>,
0231                          <&gcc GCC_BOOT_ROM_AHB_CLK>,
0232                          <&xo_board>;
0233                 clock-names = "iface", "bus", "mem", "xo";
0234 
0235                 resets = <&gcc GCC_MSS_RESTART>;
0236                 reset-names = "mss_restart";
0237 
0238                 cx-supply = <&pm8841_s2>;
0239                 mss-supply = <&pm8841_s3>;
0240                 mx-supply = <&pm8841_s1>;
0241                 pll-supply = <&pm8941_l12>;
0242 
0243                 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
0244 
0245                 qcom,smem-states = <&modem_smp2p_out 0>;
0246                 qcom,smem-state-names = "stop";
0247 
0248                 mba {
0249                         memory-region = <&mba_region>;
0250                 };
0251 
0252                 mpss {
0253                         memory-region = <&mpss_region>;
0254                 };
0255 
0256                 smd-edge {
0257                         interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
0258 
0259                         qcom,ipc = <&apcs 8 12>;
0260                         qcom,smd-edge = <0>;
0261 
0262                         label = "modem";
0263                 };
0264         };