forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
7.8 KiB
269 lines
7.8 KiB
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,qcs404-wcss-pil" |
|
"qcom,msm8916-mss-pil", |
|
"qcom,msm8974-mss-pil" |
|
"qcom,msm8996-mss-pil" |
|
"qcom,msm8998-mss-pil" |
|
"qcom,sc7180-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: reference to the interrupts that match interrupt-names |
|
|
|
- interrupt-names: |
|
Usage: required |
|
Value type: <stringlist> |
|
Definition: The interrupts needed depends on the the compatible |
|
string: |
|
qcom,q6v5-pil: |
|
qcom,ipq8074-wcss-pil: |
|
qcom,qcs404-wcss-pil: |
|
qcom,msm8916-mss-pil: |
|
qcom,msm8974-mss-pil: |
|
must be "wdog", "fatal", "ready", "handover", "stop-ack" |
|
qcom,msm8996-mss-pil: |
|
qcom,msm8998-mss-pil: |
|
qcom,sc7180-mss-pil: |
|
qcom,sdm845-mss-pil: |
|
must be "wdog", "fatal", "ready", "handover", "stop-ack", |
|
"shutdown-ack" |
|
|
|
- firmware-name: |
|
Usage: optional |
|
Value type: <stringlist> |
|
Definition: must list the relative firmware image paths for mba and |
|
modem. They are used for booting and authenticating the |
|
Hexagon core. |
|
|
|
- clocks: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the clocks that match clock-names |
|
|
|
- clock-names: |
|
Usage: required |
|
Value type: <stringlist> |
|
Definition: The clocks needed depend on the compatible string: |
|
qcom,ipq8074-wcss-pil: |
|
no clock names required |
|
qcom,qcs404-wcss-pil: |
|
must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr", |
|
"gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc", |
|
"lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc", |
|
"lcc_axim_cbc", "lcc_bcr_sleep" |
|
qcom,q6v5-pil: |
|
qcom,msm8916-mss-pil: |
|
qcom,msm8974-mss-pil: |
|
must be "iface", "bus", "mem", "xo" |
|
qcom,msm8996-mss-pil: |
|
must be "iface", "bus", "mem", "xo", "gpll0_mss", |
|
"snoc_axi", "mnoc_axi", "pnoc", "qdss" |
|
qcom,msm8998-mss-pil: |
|
must be "iface", "bus", "mem", "xo", "gpll0_mss", |
|
"snoc_axi", "mnoc_axi", "qdss" |
|
qcom,sc7180-mss-pil: |
|
must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi", |
|
"nav" |
|
qcom,sdm845-mss-pil: |
|
must be "iface", "bus", "mem", "xo", "gpll0_mss", |
|
"snoc_axi", "mnoc_axi", "prng" |
|
|
|
- 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 |
|
reference to the list of 2 reset-controllers for the modem |
|
sub-system on SC7180, SDM845 SoCs |
|
|
|
- reset-names: |
|
Usage: required |
|
Value type: <stringlist> |
|
Definition: must be "mss_restart" for the modem sub-system |
|
must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" |
|
for the wcss sub-system |
|
must be "mss_restart", "pdc_reset" for the modem |
|
sub-system on SC7180, SDM845 SoCs |
|
|
|
For devices where the mba and mpss sub-nodes are not specified, mba/mpss region |
|
should be referenced as follows: |
|
- memory-region: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the reserved-memory for the mba region followed |
|
by the mpss region |
|
|
|
For the compatible strings below the following supplies are required: |
|
"qcom,q6v5-pil" |
|
"qcom,msm8916-mss-pil", |
|
- cx-supply: (deprecated, use power domain instead) |
|
- mx-supply: (deprecated, use power domain instead) |
|
- pll-supply: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the regulators to be held on behalf of the |
|
booting of the Hexagon core |
|
|
|
For the compatible string below the following supplies are required: |
|
"qcom,msm8974-mss-pil" |
|
- cx-supply: (deprecated, use power domain instead) |
|
- mss-supply: |
|
- mx-supply: (deprecated, use power domain instead) |
|
- pll-supply: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the regulators to be held on behalf of the |
|
booting of the Hexagon core |
|
|
|
For the compatible string below the following supplies are required: |
|
"qcom,qcs404-wcss-pil" |
|
- cx-supply: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the regulators to be held on behalf of the |
|
booting of the Hexagon core |
|
|
|
For the compatible string below the following supplies are required: |
|
"qcom,msm8996-mss-pil" |
|
- pll-supply: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to the regulators to be held on behalf of the |
|
booting of the Hexagon core |
|
|
|
- power-domains: |
|
Usage: required |
|
Value type: <phandle> |
|
Definition: reference to power-domains that match power-domain-names |
|
|
|
- power-domain-names: |
|
Usage: required |
|
Value type: <stringlist> |
|
Definition: The power-domains needed depend on the compatible string: |
|
qcom,ipq8074-wcss-pil: |
|
no power-domain names required |
|
qcom,q6v5-pil: |
|
qcom,msm8916-mss-pil: |
|
qcom,msm8974-mss-pil: |
|
qcom,msm8996-mss-pil: |
|
qcom,msm8998-mss-pil: |
|
must be "cx", "mx" |
|
qcom,sc7180-mss-pil: |
|
qcom,sdm845-mss-pil: |
|
must be "cx", "mx", "mss", "load_state" |
|
|
|
- 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. |
|
|
|
For the compatible strings below the following phandle references are required: |
|
"qcom,sc7180-mss-pil" |
|
- qcom,spare-regs: |
|
Usage: required |
|
Value type: <prop-encoded-array> |
|
Definition: a phandle reference to a syscon representing TCSR followed |
|
by the offset within syscon for conn_box_spare0 register |
|
used by the modem sub-system running on SC7180 SoC. |
|
|
|
The Hexagon node must contain iommus property as described in ../iommu/iommu.txt |
|
on platforms which do not have TrustZone. |
|
|
|
= 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>; |
|
}; |
|
};
|
|
|