From patchwork Tue Dec 13 14:07:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sibi Sankar X-Patchwork-Id: 13072101 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65DF8C10F1D for ; Tue, 13 Dec 2022 14:08:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234989AbiLMOIV (ORCPT ); Tue, 13 Dec 2022 09:08:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235709AbiLMOIR (ORCPT ); Tue, 13 Dec 2022 09:08:17 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 183651C92A; Tue, 13 Dec 2022 06:08:11 -0800 (PST) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BDDvv5a027930; Tue, 13 Dec 2022 14:07:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=xisdxIEj3MrtrOa4Wpfi4t5TkqxZFjV/s9j/ArEptIY=; b=mHMgvsGxZvYE2rpFSWUCt2huQ3Ya1ZcdWrEkjl9K/P7KMRTj3WzGJJLX8Alln/yRx7G3 dB2IQ1y+FiA1rqlPcXxXaKFYjdSewJzXPTK9K3Z9W0Z8CI7ThNuonMLeC8iLTaKDMBjo Ql8RqXdauFjRFwssdcD6baw/LooeJTmaphTBzDfRMcgw/eGuvIVTPn7BtKpd6EIAPgjx UdYn9cPnzdYvk5eLFwtb2H709sKQts0OzYurfQzUd306ENws7Y5USwjRbaYVMHj2X7M0 8uQK5VBOPyiUz6vgwr3hKkjvjFqlzS8VPFa8gkkA5U+02v5YzL0JQSIWczq5CUpZA/mK 1A== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3medypa8jx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:07:53 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 2BDE7qEd014743 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:07:52 GMT Received: from blr-ubuntu-87.ap.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 13 Dec 2022 06:07:47 -0800 From: Sibi Sankar To: , , , CC: , , , , , , , , , , , Sibi Sankar Subject: [PATCH 1/4] arm64: dts: qcom: Introduce a carveout for modem metadata Date: Tue, 13 Dec 2022 19:37:21 +0530 Message-ID: <20221213140724.8612-2-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221213140724.8612-1-quic_sibis@quicinc.com> References: <20221213140724.8612-1-quic_sibis@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: K9IpgvKj7_0Ohp3fPRrIoPHH8AKIHhwO X-Proofpoint-GUID: K9IpgvKj7_0Ohp3fPRrIoPHH8AKIHhwO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-13_03,2022-12-13_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=999 bulkscore=0 mlxscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212130126 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Introduce a new carveout for modem metadata. This will serve as a replacement for the memory region used by MSA to authenticate modem ELF headers. Signed-off-by: Sibi Sankar --- arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 6 ++++++ arch/arm64/boot/dts/qcom/msm8996.dtsi | 9 +++++++++ arch/arm64/boot/dts/qcom/msm8998.dtsi | 9 +++++++++ arch/arm64/boot/dts/qcom/sc7180-idp.dts | 7 ++++++- arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 7 ++++++- arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 7 ++++++- arch/arm64/boot/dts/qcom/sdm845.dtsi | 9 +++++++++ 7 files changed, 51 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi index 5b47b8de69da..4242f8587c19 100644 --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi @@ -127,6 +127,12 @@ reg = <0x0 0xf6f00000 0x0 0x100000>; no-map; }; + + /delete-node/ memory@91700000; + mdata_mem: memory@f7100000 { + reg = <0x0 0xf7100000 0x0 0x4000>; + no-map; + }; }; vph_pwr: vph-pwr-regulator { diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index cc65f52bb80f..3f5fb08e2341 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -462,6 +462,11 @@ reg = <0x0 0x91500000 0x0 0x200000>; no-map; }; + + mdata_mem: memory@91700000 { + reg = <0x0 0x91700000 0x0 0x4000>; + no-map; + }; }; rpm-glink { @@ -2458,6 +2463,10 @@ memory-region = <&mpss_mem>; }; + metadata { + memory-region = <&mdata_mem>; + }; + smd-edge { interrupts = ; diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qcom/msm8998.dtsi index 539382dab0ad..02e81fd5702d 100644 --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -59,6 +59,11 @@ qcom,vmid = <15>; }; + mdata_mem: memory@89100000 { + reg = <0x0 0x89100000 0x0 0x4000>; + no-map; + }; + spss_mem: memory@8ab00000 { reg = <0x0 0x8ab00000 0x0 0x700000>; no-map; @@ -1357,6 +1362,10 @@ memory-region = <&mpss_mem>; }; + metadata { + memory-region = <&mdata_mem>; + }; + glink-edge { interrupts = ; label = "modem"; diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts index b27b5f0e2b6b..ff0ef8bcba2f 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts @@ -80,6 +80,11 @@ reg = <0x0 0x94400000 0x0 0x200000>; no-map; }; + + mdata_mem: memory@94e00000 { + reg = <0x0 0x94e00000 0x0 0x4000>; + no-map; + }; }; }; @@ -382,7 +387,7 @@ clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo"; iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>; - memory-region = <&mba_mem &mpss_mem>; + memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; resets = <&aoss_reset AOSS_CC_MSS_RESTART>, <&pdc_reset PDC_MODEM_SYNC_RESET>; diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi index d134d172a3c5..3f2e7175afd8 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi @@ -81,6 +81,11 @@ reg = <0x0 0x94400000 0x0 0x200000>; no-map; }; + + mdata_mem: memory@94e00000 { + reg = <0x0 0x94e00000 0x0 0x4000>; + no-map; + }; }; aliases { @@ -865,7 +870,7 @@ hp_i2c: &i2c9 { clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo"; iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>; - memory-region = <&mba_mem &mpss_mem>; + memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; /* This gets overridden for SKUs with LTE support. */ firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn", diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi index bf522a64b172..bda0495aa0b5 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi @@ -17,6 +17,11 @@ reg = <0x0 0x9c700000 0x0 0x200000>; no-map; }; + + mdata_mem: memory@9d100000 { + reg = <0x0 0x9d100000 0x0 0x4000>; + no-map; + }; }; }; @@ -32,7 +37,7 @@ iommus = <&apps_smmu 0x124 0x0>, <&apps_smmu 0x488 0x7>; interconnects = <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>; - memory-region = <&mba_mem>, <&mpss_mem>; + memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; firmware-name = "qcom/sc7280-herobrine/modem/mba.mbn", "qcom/sc7280-herobrine/modem/qdsp6sw.mbn"; diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index 65032b94b46d..56050f35c232 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -122,6 +122,11 @@ qcom,vmid = <15>; }; + mdata_mem: memory@89700000 { + reg = <0 0x89700000 0 0x4000>; + no-map; + }; + qseecom_mem: qseecom@8ab00000 { reg = <0 0x8ab00000 0 0x1400000>; no-map; @@ -3283,6 +3288,10 @@ memory-region = <&mpss_region>; }; + metadata { + memory-region = <&mdata_mem>; + }; + glink-edge { interrupts = ; label = "modem"; From patchwork Tue Dec 13 14:07:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sibi Sankar X-Patchwork-Id: 13072100 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 186C3C4332F for ; Tue, 13 Dec 2022 14:08:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235829AbiLMOIT (ORCPT ); Tue, 13 Dec 2022 09:08:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235685AbiLMOIQ (ORCPT ); Tue, 13 Dec 2022 09:08:16 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86A371C111; Tue, 13 Dec 2022 06:08:10 -0800 (PST) Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BDCJQbA008062; Tue, 13 Dec 2022 14:07:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=xE0HfprrM/JQQvr7foPEndXyyQyOs4Ygvb7r5ElxHZo=; b=De/zBE4I+DTt7LjnTIQNJEzwnp+ELvmxPFhpFLXbN4X4yqZncSaoUptgTQWfFFaI0TUt O7H+8eMCY5Lnvtap304mDGCgtraVUEWGGip8yIxWSQvJnpJPCL4z7qiq+MZFMM0bKqFG 3RLU3h4w6c8bHyq/9ajx8IzkQhFwyKwHe4+SK/RzL8jiN3imDVMy1nmfQVrl0808ChhT ewOIS84iG4KtV2c4jkZKua9TIsGQfmM1Ziv+5QFi9SjuXjVNuzLvnw90LVG2Q1JWComU 02FX4dUnvtHZHUAaP7DZYcQ9T5f2TCV7d6LQYjZ7aPCTF2srUVfTe0loJ78eydeCiuLW VA== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3mehje1hfc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:07:58 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 2BDE7vUO011884 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:07:57 GMT Received: from blr-ubuntu-87.ap.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 13 Dec 2022 06:07:52 -0800 From: Sibi Sankar To: , , , CC: , , , , , , , , , , , Sibi Sankar Subject: [PATCH 2/4] dt-bindings: remoteproc: qcom: sc7180: Update memory-region requirements Date: Tue, 13 Dec 2022 19:37:22 +0530 Message-ID: <20221213140724.8612-3-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221213140724.8612-1-quic_sibis@quicinc.com> References: <20221213140724.8612-1-quic_sibis@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: tKHQpmJKstrO2o9Z8auWm_fv-uEfPVDc X-Proofpoint-ORIG-GUID: tKHQpmJKstrO2o9Z8auWm_fv-uEfPVDc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-13_03,2022-12-13_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=978 bulkscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212130126 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Update the bindings to reflect the addition of the new modem metadata carveout reference to the memory-region property. Signed-off-by: Sibi Sankar --- .../devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml | 3 ++- .../devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml index e4a7da8020f4..b1402bef0ebe 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml @@ -95,6 +95,7 @@ properties: items: - description: MBA reserved region - description: modem reserved region + - description: metadata reserved region firmware-name: $ref: /schemas/types.yaml#/definitions/string-array @@ -223,7 +224,7 @@ examples: <&rpmhpd SC7180_MSS>; power-domain-names = "cx", "mx", "mss"; - memory-region = <&mba_mem>, <&mpss_mem>; + memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; qcom,qmp = <&aoss_qmp>; diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml index b4de0521a89d..005cb21732af 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml @@ -95,6 +95,7 @@ properties: items: - description: MBA reserved region - description: modem reserved region + - description: metadata reserved region firmware-name: $ref: /schemas/types.yaml#/definitions/string-array @@ -240,7 +241,7 @@ examples: <&rpmhpd SC7280_MSS>; power-domain-names = "cx", "mss"; - memory-region = <&mba_mem>, <&mpss_mem>; + memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; qcom,qmp = <&aoss_qmp>; From patchwork Tue Dec 13 14:07:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sibi Sankar X-Patchwork-Id: 13072102 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4AD6C10F1D for ; Tue, 13 Dec 2022 14:08:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235823AbiLMOI3 (ORCPT ); Tue, 13 Dec 2022 09:08:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235824AbiLMOIT (ORCPT ); Tue, 13 Dec 2022 09:08:19 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBD4120BE6; Tue, 13 Dec 2022 06:08:16 -0800 (PST) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BD66EYR025182; Tue, 13 Dec 2022 14:08:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=d9vC3/6r4RbGZMDzSejEODqDGqHxVnirnnqfAfUdkTw=; b=OucyUW0FBjIHIbrvhYOXk1YNvfNYpYjNKLWnfDaFtPx/8wwF0Q5B44XYlQM2cVHbv2/R FgQUYMUgbsyKAkao6lFEuwam2S178XRUsQNjvUpEO1tyL+vUNcGakCee0PKoIsZ5AMEB XRN3++iUFylzGU04CkUXvkgLsM4x6/D3tu2tW8Fd2rc/fu09AC3aIWkDyK1SODarnSsR AYXTvmxcqXQzg8kSlQBjEgcgpxwvIB2v+lyY2QKMLFQMwCwCcIuoK0nGRIe60e/i453G d6p8O3NdumNfkFAQFj+3c3uiYsH4XUcen+k9Mz6KaDjBUBiO3EogEtrKDrxnMsl8PagD pg== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3medypa8ka-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:08:03 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 2BDE82ZB000651 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:08:02 GMT Received: from blr-ubuntu-87.ap.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 13 Dec 2022 06:07:57 -0800 From: Sibi Sankar To: , , , CC: , , , , , , , , , , , Sibi Sankar Subject: [PATCH 3/4] dt-bindings: remoteproc: qcom: q6v5: Update memory region requirements Date: Tue, 13 Dec 2022 19:37:23 +0530 Message-ID: <20221213140724.8612-4-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221213140724.8612-1-quic_sibis@quicinc.com> References: <20221213140724.8612-1-quic_sibis@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: L5zoXTJmYHZ2McYZWBL4usgADxG9MPkM X-Proofpoint-GUID: L5zoXTJmYHZ2McYZWBL4usgADxG9MPkM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-13_03,2022-12-13_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=999 bulkscore=0 mlxscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212130126 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Update the bindings to reflect the addition of the new modem metadata carveout on SoCs that use memory protection before transferring control to the remote Q6. Signed-off-by: Sibi Sankar --- https://lore.kernel.org/all/20220511161602.117772-7-sireeshkodali1@gmail.com/ Sireesh had started the conversion to yaml a while back. I'll take over the conversion from v2. .../bindings/remoteproc/qcom,q6v5.txt | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt index d0ebd16ee0e1..89772d026363 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +++ b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt @@ -104,8 +104,24 @@ on the Qualcomm Hexagon core. must be "mss_restart", "pdc_reset" for the modem sub-system on SDM845 SoCs -For devices where the mba and mpss sub-nodes are not specified, mba/mpss region -should be referenced as follows: +For devices with the compatible strings below and where the mba, mpss and +metadata sub-nodes are not specified, mba/mpss/mdata region should be +referenced as follows: + "qcom,msm8996-mss-pil" + "qcom,msm8998-mss-pil" + "qcom,sdm845-mss-pil" +- memory-region: + Usage: required + Value type: + Definition: reference to mba, mpss and metadata reserved-memory regions. + +For devices with the compatible strings below and where the mba and mpss +sub-nodes are not specified, mba/mpss region should be referenced as follows: + "qcom,q6v5-pil", + "qcom,ipq8074-wcss-pil" + "qcom,qcs404-wcss-pil" + "qcom,msm8916-mss-pil", + "qcom,msm8974-mss-pil" - memory-region: Usage: required Value type: @@ -198,7 +214,14 @@ 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: +the memory regions used by the Hexagon firmware. For devices with the compatible +string below, an additional third subnode named "metadata" representing the modem +metadata memory region should also be present. + "qcom,msm8996-mss-pil" + "qcom,msm8998-mss-pil" + "qcom,sdm845-mss-pil" + +Each sub-node must contain: - memory-region: Usage: required From patchwork Tue Dec 13 14:07:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sibi Sankar X-Patchwork-Id: 13072118 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DEFEC10F1D for ; Tue, 13 Dec 2022 14:08:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235870AbiLMOIs (ORCPT ); Tue, 13 Dec 2022 09:08:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235847AbiLMOIW (ORCPT ); Tue, 13 Dec 2022 09:08:22 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 301491CB0D; Tue, 13 Dec 2022 06:08:21 -0800 (PST) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BD9kq4I021818; Tue, 13 Dec 2022 14:08:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=MUX//IrfRvGsXvnnhB+npT6Kz7UuYcjfNbb1eWbVBrc=; b=U42HVTPRXH5mH4/OIVGslUcGphuoSUzQa50boqNCEoSSTT2oHYkdX2cyDbp6DyU0Tof0 nNAwJU5sTK5XTIZ0wfCiAyOQJMG1ZfOOjwEddls/u8Nq7V8fOQP2BzIV0AvkOw8qCSkN MlEDOeB0KCWC0OQec+49dDN7VxTMz8sU2jmYWA7cYO415tP/IQTUi0S62DJFyF91HFib XEOgu2b4kPdM0lgm0VjexSPcoq4qnTrH6R5yiq55Zm1wl+PZSkrN/gGHRbNsAOz5wlsu 8MmPQpo3tjMdjfIpF7DHMPiHuYomKOUcUpGka1AXBBhjb5WcAynZc4pk8m411IdltmIb AQ== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3meh7u9n1a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:08:09 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 2BDE874K014905 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Dec 2022 14:08:07 GMT Received: from blr-ubuntu-87.ap.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 13 Dec 2022 06:08:02 -0800 From: Sibi Sankar To: , , , CC: , , , , , , , , , , , Sibi Sankar Subject: [PATCH 4/4] remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers Date: Tue, 13 Dec 2022 19:37:24 +0530 Message-ID: <20221213140724.8612-5-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221213140724.8612-1-quic_sibis@quicinc.com> References: <20221213140724.8612-1-quic_sibis@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: dIaaTbA0P7z2If6p5_9stneSfU6VPaWz X-Proofpoint-ORIG-GUID: dIaaTbA0P7z2If6p5_9stneSfU6VPaWz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-13_03,2022-12-13_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 bulkscore=0 spamscore=0 adultscore=0 priorityscore=1501 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212130126 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The memory region allocated using dma_alloc_attr with no kernel mapping attribute set would still be a part of the linear kernel map. Any access to this region by the application processor after assigning it to the remote Q6 will result in a XPU violation. Fix this by replacing the dynamically allocated memory region with a no-map carveout and unmap the modem metadata memory region before passing control to the remote Q6. Reported-by: Amit Pundir Fixes: 6c5a9dc2481b ("remoteproc: qcom: Make secure world call for mem ownership switch") Signed-off-by: Sibi Sankar --- The addition of the carveout and memunmap is required only on SoCs that mandate memory protection before transferring control to Q6, hence the driver falls back to dynamic memory allocation in the absence of the modem metadata carveout. drivers/remoteproc/qcom_q6v5_mss.c | 85 +++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 24 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c index fddb63cffee0..8264275ecbd0 100644 --- a/drivers/remoteproc/qcom_q6v5_mss.c +++ b/drivers/remoteproc/qcom_q6v5_mss.c @@ -211,6 +211,7 @@ struct q6v5 { size_t mba_size; size_t dp_size; + phys_addr_t mdata_phys; phys_addr_t mpss_phys; phys_addr_t mpss_reloc; size_t mpss_size; @@ -935,6 +936,7 @@ static int q6v5_mpss_init_image(struct q6v5 *qproc, const struct firmware *fw, { unsigned long dma_attrs = DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NO_KERNEL_MAPPING; unsigned long flags = VM_DMA_COHERENT | VM_FLUSH_RESET_PERMS; + void *mdata_region; struct page **pages; struct page *page; dma_addr_t phys; @@ -951,34 +953,48 @@ static int q6v5_mpss_init_image(struct q6v5 *qproc, const struct firmware *fw, if (IS_ERR(metadata)) return PTR_ERR(metadata); - page = dma_alloc_attrs(qproc->dev, size, &phys, GFP_KERNEL, dma_attrs); - if (!page) { - kfree(metadata); - dev_err(qproc->dev, "failed to allocate mdt buffer\n"); - return -ENOMEM; - } + if (qproc->mdata_phys) { + mdata_region = memremap(qproc->mdata_phys, size, MEMREMAP_WC); + if (!mdata_region) { + dev_err(qproc->dev, "unable to map memory region: %pa+%zx\n", + &qproc->mdata_phys, size); + ret = -EBUSY; + goto free_dma_attrs; + } - count = PAGE_ALIGN(size) >> PAGE_SHIFT; - pages = kmalloc_array(count, sizeof(struct page *), GFP_KERNEL); - if (!pages) { - ret = -ENOMEM; - goto free_dma_attrs; - } + memcpy(mdata_region, metadata, size); + memunmap(mdata_region); + phys = qproc->mdata_phys; + } else { + page = dma_alloc_attrs(qproc->dev, size, &phys, GFP_KERNEL, dma_attrs); + if (!page) { + kfree(metadata); + dev_err(qproc->dev, "failed to allocate mdt buffer\n"); + return -ENOMEM; + } - for (i = 0; i < count; i++) - pages[i] = nth_page(page, i); + count = PAGE_ALIGN(size) >> PAGE_SHIFT; + pages = kmalloc_array(count, sizeof(struct page *), GFP_KERNEL); + if (!pages) { + ret = -ENOMEM; + goto free_dma_attrs; + } - vaddr = vmap(pages, count, flags, pgprot_dmacoherent(PAGE_KERNEL)); - kfree(pages); - if (!vaddr) { - dev_err(qproc->dev, "unable to map memory region: %pa+%zx\n", &phys, size); - ret = -EBUSY; - goto free_dma_attrs; - } + for (i = 0; i < count; i++) + pages[i] = nth_page(page, i); - memcpy(vaddr, metadata, size); + vaddr = vmap(pages, count, flags, pgprot_dmacoherent(PAGE_KERNEL)); + kfree(pages); + if (!vaddr) { + dev_err(qproc->dev, "unable to map memory region: %pa+%zx\n", &phys, size); + ret = -EBUSY; + goto free_dma_attrs; + } - vunmap(vaddr); + memcpy(vaddr, metadata, size); + + vunmap(vaddr); + } /* Hypervisor mapping to access metadata by modem */ mdata_perm = BIT(QCOM_SCM_VMID_HLOS); @@ -1008,7 +1024,8 @@ static int q6v5_mpss_init_image(struct q6v5 *qproc, const struct firmware *fw, "mdt buffer not reclaimed system may become unstable\n"); free_dma_attrs: - dma_free_attrs(qproc->dev, size, page, phys, dma_attrs); + if (!qproc->mdata_phys) + dma_free_attrs(qproc->dev, size, page, phys, dma_attrs); kfree(metadata); return ret < 0 ? ret : 0; @@ -1882,6 +1899,26 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc) qproc->mpss_phys = qproc->mpss_reloc = r.start; qproc->mpss_size = resource_size(&r); + if (!child) { + node = of_parse_phandle(qproc->dev->of_node, "memory-region", 2); + } else { + child = of_get_child_by_name(qproc->dev->of_node, "metadata"); + node = of_parse_phandle(child, "memory-region", 0); + of_node_put(child); + } + + if (!node) + return 0; + + ret = of_address_to_resource(node, 0, &r); + of_node_put(node); + if (ret) { + dev_err(qproc->dev, "unable to resolve metadata region\n"); + return ret; + } + + qproc->mdata_phys = r.start; + return 0; }