Request direct mapping for modem device
Subsystems (5)
v2 cover Request direct mapping for modem device
The Q6 modem sub-system has direct access to DDR through memnoc and an indirect access routed through a SMMU which MSS CE (crypto engine sub-component of MSS) uses during out of reset sequence. Request direct mapping for the modem device since smmu is not expected to provide access control/translation for these SIDs (sandboxing of the modem is achieved through XPUs engaged using SMC calls). This is done on platforms which don't have TrustZone (which programs the modem SIDs) to prevent the following global faults seen on Cheza/Trogdor:
Cheza:
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000,
GFSYNR1 0x00000781, GFSYNR2 0x00000000
Trogdor:
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000,
GFSYNR1 0x00000461, GFSYNR2 0x00000000
V2:
* Request direct mapping from SoC-specific corner of the SMMU driver [Robin]
* Add iommu property to remoteproc modem node on Cheza
Depends on:
https://lore.kernel.org/patchwork/cover/1183528/
Sibi Sankar (3):
dt-bindings: remoteproc: qcom: Add iommus property
remoteproc: qcom_q6v5_mss: Request direct mapping for modem device
arm64: dts: qcom: sdm845-cheza: Add iommus property
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 3 +++ arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 4 ++++ drivers/iommu/arm-smmu-qcom.c | 6 ++++++ 3 files changed, 13 insertions(+)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH v2 1/3 dt-bindings: remoteproc: qcom: Add iommus property
Add iommus property to allow Q6 modem to boot on platforms which do not have trustZone.
--- Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 3 +++ 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +3 -0
@@ -184,6 +184,9 @@ For the compatible strings below the following phandle references are required: followed by the offset within syscon for conn_box_spare0 register. +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:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Re: [PATCH v2 1/3] dt-bindings: remoteproc: qcom: Add iommus property
Quoted 8 lines · Sibi Sankar
Add iommus property to allow Q6 modem to boot on platforms which do not have trustZone.
Signed-off-by Sibi Sankar <[email protected]>--- Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 3 +++ 1 file changed, 3 insertions(+)
PATCH v2 2/3 remoteproc: qcom_q6v5_mss: Request direct mapping for modem device
In reply to Sibi SankarRequest direct mapping for modem on platforms which don't have TrustZone (which programs the modem SIDs) to prevent the following global faults seen on Cheza/Trogdor:
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000,
GFSYNR1 0x00000781, GFSYNR2 0x00000000
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR 0x80000002, GFSYNR0 0x00000000,
GFSYNR1 0x00000461, GFSYNR2 0x00000000
--- drivers/iommu/arm-smmu-qcom.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/iommu/arm-smmu-qcom.c +6 -0
@@ -20,12 +20,18 @@ static const struct arm_smmu_client_match_data qcom_mdss = { .direct_mapping = true, }; +static const struct arm_smmu_client_match_data qcom_mss = { + .direct_mapping = true, +}; +static const struct of_device_id qcom_smmu_client_of_match[] = { { .compatible ="qcom,adreno" , .data = &qcom_adreno }, { .compatible ="qcom,mdp4" , .data = &qcom_mdss }, { .compatible ="qcom,mdss" , .data = &qcom_mdss }, { .compatible ="qcom,sc7180-mdss" , .data = &qcom_mdss }, + { .compatible ="qcom,sc7180-mss-pil" , .data = &qcom_mss }, { .compatible ="qcom,sdm845-mdss" , .data = &qcom_mdss }, + { .compatible ="qcom,sdm845-mss-pil" , .data = &qcom_mss }, {}, };
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH v2 3/3 arm64: dts: qcom: sdm845-cheza: Add iommus property
In reply to Sibi SankarAdd iommus property to remoteproc modem node.
--- arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi +4 -0
@@ -626,6 +626,10 @@ &mdss_mdp { status = "okay"; }; +&mss_pil { + iommus = <&apps_smmu 0x780 0x1>; +}; + &pm8998_pwrkey { status = "disabled"; };
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
Quoted 24 lines · Sibi Sankar
The Q6 modem sub-system has direct access to DDR through memnoc and an indirect access routed through a SMMU which MSS CE (crypto engine sub-component of MSS) uses during out of reset sequence. Request direct mapping for the modem device since smmu is not expected to provide access control/translation for these SIDs (sandboxing of the modem is achieved through XPUs engaged using SMC calls). This is done on platforms which don't have TrustZone (which programs the modem SIDs) to prevent the following global faults seen on Cheza/Trogdor:
Cheza:
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR0x80000002, GFSYNR00x00000000,GFSYNR1 0x00000781, GFSYNR2 0x00000000Trogdor:
arm-smmu 15000000.iommu: Unexpected global fault, this could be serious arm-smmu 15000000.iommu: GFSR0x80000002, GFSYNR00x00000000,GFSYNR1 0x00000461, GFSYNR2 0x00000000V2:
* Request direct mapping from SoC-specific corner of the SMMU driver [Robin]
* Add iommu property to remoteproc modem node on Cheza
Quoted 6 lines
Depends on:
https://lore.kernel.org/patchwork/cover/1183528/Sibi Sankar (3):
dt-bindings: remoteproc: qcom: Add iommus property
remoteproc:qcom_q6v5_mss: Request direct mapping for modem device
iommu: arm-smmu-qcom: Request direct mapping for modem device
sry should have been ^^ instead
Quoted 6 lines
arm64: dts: qcom: sdm845-cheza: Add iommus property
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 3 +++ arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 4 ++++ drivers/iommu/arm-smmu-qcom.c | 6 ++++++ 3 files changed, 13 insertions(+)
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.