From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C35792F3638; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; cv=none; b=py/016R24MbMHq26k2eBrfxp9hRUace253KDTDErEvXofyTcLjW3w6TIfO+6HLwifH2a7wfKzOFdNDZPkXwW6g3khjeXqapry88NevlszwHmc1CirpLevcfr55cjPBGbAQQpSGy5B+NwUGmBe4dUjjstD6V0aI0rnCwMTFhOu/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; c=relaxed/simple; bh=L6A8fsEjgTMW0Gvj6lPXPAA86iG+QzHG1Xr48HotD9o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oKu+x4PwqVKCwEi6ZGFLWJ1gL3s2WO1SlzrpvlsI9fvHbECkovMHBnUCs4LVzwsjX195ve0DQEOM5g0SMDemp31TiASMlCklOpZfsE6WitZeGUaKT7U1qdgRqsOt/1xpLdgYz2bJ0h8abwq0gJ016RmtBO80XSyizzt0vDD3a7I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CTylyn7m; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CTylyn7m" Received: by smtp.kernel.org (Postfix) with ESMTPS id 664E1C19421; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=L6A8fsEjgTMW0Gvj6lPXPAA86iG+QzHG1Xr48HotD9o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=CTylyn7mpoNIIZVRe8K2xZnm/BN2ldwtUT5R3SE5NUYjJNO1nTWz6w+avrjsExIpZ ADNwAcQyAlZo7+r5rUs7Y/A/iuqc3OGgdBJmJJfHwiUWZHO+ubcS05fmDL8F43tB8N tPOF7wBDGwQgwj/RJ5hTnNDGINs9ze9B51yzdff+JjzVyy+eg3vagWvZe/reK/tUa5 326FTF8Hn4Eb7YgoVu6G3PCWwtKpfHl0g2frZeYfS2+IpBOs+AW6eT5f0Wsmyczil2 lmN0+z5AcE+CKwnUCipOj9pmegIAvPbUkAJM46P4xdAOUlrhk+RLU+MwIWI11OKn+a sSztytRt4j50w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4ED53D3B7E8; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:33 +0400 Subject: [PATCH v6 1/8] firmware: qcom_scm: ipq5332: add support to pass metadata size Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-1-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Konrad Dybcio , Gokul Sriram Palanisamy X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=2530; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=IFR7BoBGBYx2GnrSJAySlI7gBy/DN0NPxf8vZLTi+hw=; b=es5QYKin1PJq9cK4rnZktU2mRW6FGKG+tnFa38GmhEbJtqt1L/z8CDrHfE3vlB3WmrfLogDNv Jwe45o4IAveDAxTKDg/piLOAziKLR+NjCb/O6YJxU2LiSLzdOWmxy9H X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Manikanta Mylavarapu IPQ5332 security software running under trustzone requires metadata size. With new command support added in TrustZone that includes a size parameter, pass metadata size as well. Reviewed-by: Konrad Dybcio Signed-off-by: Manikanta Mylavarapu Signed-off-by: Gokul Sriram Palanisamy --- drivers/firmware/qcom/qcom_scm.c | 17 +++++++++++++---- drivers/firmware/qcom/qcom_scm.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 1a6f85e463e06a12814614cea20719c90a371b69..c970157f75b51027fb73664a58c= 38550344ab963 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -583,9 +583,6 @@ int qcom_scm_pas_init_image(u32 peripheral, const void = *metadata, size_t size, int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, - .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, - .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D peripheral, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -617,7 +614,19 @@ int qcom_scm_pas_init_image(u32 peripheral, const void= *metadata, size_t size, if (ret) goto disable_clk; =20 - desc.args[1] =3D mdata_phys; + if (__qcom_scm_is_call_available(__scm->dev, QCOM_SCM_SVC_PIL, + QCOM_SCM_PIL_PAS_INIT_IMAGE_V2)) { + desc.cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE_V2; + desc.arginfo =3D QCOM_SCM_ARGS(3, QCOM_SCM_VAL, QCOM_SCM_RW, QCOM_SCM_VA= L); + desc.args[0] =3D peripheral; + desc.args[1] =3D mdata_phys; + desc.args[2] =3D size; + } else { + desc.cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE; + desc.arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW); + desc.args[0] =3D peripheral; + desc.args[1] =3D mdata_phys; + } =20 ret =3D qcom_scm_call(__scm->dev, &desc, &res); qcom_scm_bw_disable(); diff --git a/drivers/firmware/qcom/qcom_scm.h b/drivers/firmware/qcom/qcom_= scm.h index a56c8212cc0c41021e5a067d52b7d5dcc49107ea..b8e5b4f2498e75c9eca1a0c0032= 254b7126b9ed3 100644 --- a/drivers/firmware/qcom/qcom_scm.h +++ b/drivers/firmware/qcom/qcom_scm.h @@ -100,6 +100,7 @@ int qcom_scm_shm_bridge_enable(struct device *scm_dev); =20 #define QCOM_SCM_SVC_PIL 0x02 #define QCOM_SCM_PIL_PAS_INIT_IMAGE 0x01 +#define QCOM_SCM_PIL_PAS_INIT_IMAGE_V2 0x1a #define QCOM_SCM_PIL_PAS_MEM_SETUP 0x02 #define QCOM_SCM_PIL_PAS_AUTH_AND_RESET 0x05 #define QCOM_SCM_PIL_PAS_SHUTDOWN 0x06 --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C34CC2F28FB; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; cv=none; b=hebKWoRvrF3NkFs9g3pmQjzTmX/Yygb5gyNNwAs/ASvjghB8MLL5+kEgWLBdT87Irv4RrvwhjDKDIpVdFRNGHkNisABY+7XIl6w6GNIhOQVrxlgEoZnDFVilFeAqrqWHggnZSG40wol2HKtDPyW3JK6WJH3Axwr2YAyBRBxLHLI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; c=relaxed/simple; bh=u3U7pkyTwnB7c2Os5WO75v40qCVDPhanlFJnWJJ1KxQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jTHUqlKWZNhejb1ocFz8sDXCJKlWuWTQCpZVq0Nl0DHW1hu4j96TljGB0rJON9g32W0RcJcngfA+Ee+HVm2EMMKxiormet1IMF6vi4zPxBfdYNQgtJy85im4DJOrv/f1MsN+RKfTT5cwlF3XNfShr26oV+m+tpWrYyGWnPVz+Xw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j3OFyOS6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j3OFyOS6" Received: by smtp.kernel.org (Postfix) with ESMTPS id 72E50C16AAE; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=u3U7pkyTwnB7c2Os5WO75v40qCVDPhanlFJnWJJ1KxQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=j3OFyOS6wAyQIAWyI6Ofz1E/WOk/MTQ/gnNgiXSqrKdEiDbTzGETvkqy8oTuLfcmN g0Vzq36AHJg+Rhn8JC0J4zKvFK6g2oVr3j1yBcFi+Xv7eY37qxa6ylFGicr9szcLJi ebzFzf+oW8ZxFv3LU7Zn0Lc8KGKmMCzgqeMCi/HsKiNySKaYFo9vMI3466M/fjaKjW rs0anIoTyXzCfyBy52DuWwdmgNYRh9xZSrBbV5o+3/dkp9M95ScC7SmriJzhV+tb/B AMDQ6YvCBbwNZXpoC1OxpUK9DgeiSzOrcC8AnooCydh1OMpiGgs59N9JBmQmrovpKQ iJy7h/GW6Fnyw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EA70D3B7E2; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:34 +0400 Subject: [PATCH v6 2/8] dt-bindings: remoteproc: qcom: document hexagon based WCSS secure PIL Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-2-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Gokul Sriram Palanisamy , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=5640; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=DYA2zq1ePczBFUG9d6EFsq6Fency+GX6+e/U5k4kiBg=; b=FoIbyAIfKP5UJ/b/XgHhcBYhgz4fYbYN3MvsXoJ2UzpHVqIDAc2jmNpNPA7S6lSzATZ226zUA hVOykxLNjqwBDCnwGbHwhB+GQpYtLwRW81QrCw3sVCDyU0rxFt1fKbg X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Manikanta Mylavarapu Add new binding document for hexagon based WCSS secure PIL remoteproc. IPQ5018, IPQ5332, IPQ5424 and IPQ9574 follow secure PIL remoteproc. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Manikanta Mylavarapu Signed-off-by: Gokul Sriram Palanisamy --- .../bindings/remoteproc/qcom,wcss-sec-pil.yaml | 176 +++++++++++++++++= ++++ 1 file changed, 176 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,wcss-sec-pil= .yaml b/Documentation/devicetree/bindings/remoteproc/qcom,wcss-sec-pil.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ec454c070ba59e763edce5190c9= 66e8608714eaf --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,wcss-sec-pil.yaml @@ -0,0 +1,176 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,wcss-sec-pil.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm WCSS Secure Peripheral Image Loader + +maintainers: + - Manikanta Mylavarapu + +description: + Wireless Connectivity Subsystem (WCSS) Secure Peripheral Image Loader lo= ads + firmware and power up QDSP6 remoteproc on the Qualcomm IPQ series SoC. + +properties: + compatible: + enum: + - qcom,ipq5018-wcss-sec-pil + - qcom,ipq5332-wcss-sec-pil + - qcom,ipq5424-wcss-sec-pil + - qcom,ipq9574-wcss-sec-pil + + reg: + maxItems: 1 + + firmware-name: + maxItems: 1 + description: Firmware name for the Hexagon core + + interrupts: + items: + - description: Watchdog interrupt + - description: Fatal interrupt + - description: Ready interrupt + - description: Handover interrupt + - description: Stop acknowledge interrupt + + interrupt-names: + items: + - const: wdog + - const: fatal + - const: ready + - const: handover + - const: stop-ack + + clocks: + $ref: /schemas/types.yaml#/definitions/phandle-array + + clock-names: + $ref: /schemas/types.yaml#/definitions/string-array + + mboxes: + items: + - description: A phandle to the TMECom mailbox device node + + qcom,smem-states: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: States used by the AP to signal the remote processor + items: + - description: Stop Q6 + - description: Shutdown Q6 + + qcom,smem-state-names: + description: + Names of the states used by the AP to signal the remote processor + items: + - const: stop + - const: shutdown + + memory-region: + items: + - description: Q6 reserved region + + glink-edge: + $ref: /schemas/remoteproc/qcom,glink-edge.yaml# + description: + Qualcomm G-Link subnode which represents communication edge, channels + and devices related to the Modem. + unevaluatedProperties: false + +required: + - compatible + - reg + - firmware-name + - interrupts + - interrupt-names + - qcom,smem-states + - qcom,smem-state-names + - memory-region + +allOf: + - if: + properties: + compatible: + contains: + const: qcom,ipq5018-wcss-sec-pil + then: + properties: + clocks: + items: + - description: sleep clock + - description: AHB interconnect clock + clock-names: + items: + - const: sleep + - const: interconnect + required: + - clocks + - clock-names + + - if: + properties: + compatible: + contains: + const: qcom,ipq5332-wcss-sec-pil + then: + properties: + clocks: + items: + - description: sleep clock + clock-names: + items: + - const: sleep + required: + - clocks + - clock-names + + - if: + properties: + compatible: + contains: + enum: + - qcom,ipq5424-wcss-sec-pil + - qcom,ipq9574-wcss-sec-pil + then: + properties: + clocks: false + clock-names: false + +additionalProperties: false + +examples: + - | + #include + #include + remoteproc@d100000 { + compatible =3D "qcom,ipq5424-wcss-sec-pil"; + reg =3D <0x0d100000 0x4040>; + firmware-name =3D "ath12k/IPQ5424/hw1.0/q6_fw0.mbn"; + interrupts-extended =3D <&intc GIC_SPI 508 IRQ_TYPE_EDGE_RISING>, + <&wcss_smp2p_in 0 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 1 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 2 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 3 IRQ_TYPE_NONE>; + interrupt-names =3D "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + mboxes =3D <&tmel_qmp 0>; + qcom,smem-states =3D <&wcss_smp2p_out 1>, + <&wcss_smp2p_out 0>; + qcom,smem-state-names =3D "stop", + "shutdown"; + + memory-region =3D <&q6_region>; + + glink-edge { + interrupts =3D ; + label =3D "rtr"; + qcom,remote-pid =3D <1>; + mboxes =3D <&apcs_glb 8>; + }; + }; --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C35F22F39BE; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; cv=none; b=U08Ge0GTdTbBy5uQJMwAOlySx9TNftrfglwIrTcJWj1ozLCQm9hP+9ZRaom319dRH1RiLUqrTx0Ab4vpau2C5xqq4PoUfTrUsCthXF/ugCh/NSTjgXRHheTax5bwsltCNP0YZtQDzyZ3dCpQfx89dIlTjgXXSJc2PI0IELlX6gM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196775; c=relaxed/simple; bh=dx66ViePdpCuN8MqDJW3/fe4f4y/6KcT5fNx5SuOuYA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OjincDLy0bsoxM66kE7TMVZntN8jfSGYkGvP19lRSWtL9un9g3SuWnua116AAe1Nww9VmjL2ZdFaeYa2qhvXIJ1ab0h2pk8ORS2UdXHW1Ktmht95x4QDFezVkLwPDSXm5pQit65KAuporadhioUNQ7KaP2Kx9LnHfXjWJkjet+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=phwIDtrX; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="phwIDtrX" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7EF80C19424; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=dx66ViePdpCuN8MqDJW3/fe4f4y/6KcT5fNx5SuOuYA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=phwIDtrX9omQ66MAqrqF2wVm9mTJSNSNd7CLpNAGMWNS18D6Gu7KeSs15vJuszqKs Ht2MS1+FfW0UQrzi9+1EbBKBrmnwDlETDDfIKCdlK/4xqY6YyO8B+lTiUmFbmztm47 r8phYAMTg+pI2SWgbuNPigIb2dl+5L6EyGFgOss3qNcuEI2LHFDdd6yXAeR1O+PSUx VHiqjgs2L1vexzA7XjQxXHt57I6ceoa7Du9SjFXJnHB9X7RzjKY0ECMWQ2dH9fo8h3 2zusApwKjAcewdZL14FGfIVnUGsfP0t2/hqB9YPwkStNArY0Cw1+BXptWVWceYh1qo t8FlviGLueyAw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70D8ED3B7ED; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:35 +0400 Subject: [PATCH v6 3/8] remoteproc: qcom: add hexagon based WCSS secure PIL driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-3-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Vignesh Viswanathan , Gokul Sriram Palanisamy , George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=15057; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=eVGDRLiVkWlYZi9xHIZEfPHMIzsKU5hiKUaCoDXNlhk=; b=YlsFG69peEtXSFE9ZST2b/FZSQzvAwcs0mI5ffjaMBcY+tjArGsjvQnGjt+x8N5cDdee6+4m2 VuvuoywyrmZCPKOeIrd7eZvnRgaILgiResM44E087aszY3duvtaiaa7 X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Vignesh Viswanathan Add support to bring up hexagon based WCSS using secure PIL. All IPQxxxx SoCs support secure Peripheral Image Loading (PIL). Secure PIL image is signed firmware image which only trusted software such as TrustZone (TZ) can authenticate and load. Linux kernel will send a Peripheral Authentication Service (PAS) request to TZ to authenticate and load the PIL images. This change also introduces secure firmware authentication using Trusted Management Engine-Lite (TME-L) which is supported on IPQ5424 SoC. This driver uses mailbox based PAS request to TME-L for image authentication if supported, else it will fallback to use SCM call based PAS request to TZ. In order to avoid overloading the existing WCSS driver or PAS driver, we came up with this new PAS based IPQ WCSS driver. Signed-off-by: Vignesh Viswanathan Signed-off-by: Manikanta Mylavarapu Signed-off-by: Gokul Sriram Palanisamy Signed-off-by: George Moussalem --- drivers/remoteproc/Kconfig | 19 ++ drivers/remoteproc/Makefile | 1 + drivers/remoteproc/qcom_q6v5_wcss_sec.c | 397 ++++++++++++++++++++++++++++= ++++ include/linux/remoteproc.h | 2 + 4 files changed, 419 insertions(+) diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index 48a0d3a69ed08057716f1e7ea950899f60bbe0cf..eaa427e4e9eca48b853fe064830= 4e67649878d8e 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -254,6 +254,25 @@ config QCOM_Q6V5_WCSS Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is a non-TrustZone wireless subsystem. =20 +config QCOM_Q6V5_WCSS_SEC + tristate "Qualcomm Hexagon based WCSS Secure Peripheral Image Loader" + depends on OF && ARCH_QCOM + depends on QCOM_SMEM + depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=3Dn + depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=3Dn + select QCOM_MDT_LOADER + select QCOM_PIL_INFO + select QCOM_Q6V5_COMMON + select QCOM_RPROC_COMMON + select QCOM_SCM + help + Say y here to support the Qualcomm Secure Peripheral Image Loader + for the Hexagon based remote processors on e.g. IPQ5332. + + This is TrustZone wireless subsystem. The firmware is + verified and booted with the help of the Peripheral Authentication + System (PAS) in TrustZone. + config QCOM_SYSMON tristate "Qualcomm sysmon driver" depends on RPMSG diff --git a/drivers/remoteproc/Makefile b/drivers/remoteproc/Makefile index 1c7598b8475d6057a3e044b41e3515103b7aa9f1..08705ef62bceb8b683a9419a5a8= b027cbe2433c5 100644 --- a/drivers/remoteproc/Makefile +++ b/drivers/remoteproc/Makefile @@ -28,6 +28,7 @@ obj-$(CONFIG_QCOM_Q6V5_ADSP) +=3D qcom_q6v5_adsp.o obj-$(CONFIG_QCOM_Q6V5_MSS) +=3D qcom_q6v5_mss.o obj-$(CONFIG_QCOM_Q6V5_PAS) +=3D qcom_q6v5_pas.o obj-$(CONFIG_QCOM_Q6V5_WCSS) +=3D qcom_q6v5_wcss.o +obj-$(CONFIG_QCOM_Q6V5_WCSS_SEC) +=3D qcom_q6v5_wcss_sec.o obj-$(CONFIG_QCOM_SYSMON) +=3D qcom_sysmon.o obj-$(CONFIG_QCOM_WCNSS_PIL) +=3D qcom_wcnss_pil.o qcom_wcnss_pil-y +=3D qcom_wcnss.o diff --git a/drivers/remoteproc/qcom_q6v5_wcss_sec.c b/drivers/remoteproc/q= com_q6v5_wcss_sec.c new file mode 100644 index 0000000000000000000000000000000000000000..7bd45b4fd917e896f8df085c5ff= 2c87fa005e354 --- /dev/null +++ b/drivers/remoteproc/qcom_q6v5_wcss_sec.c @@ -0,0 +1,397 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2016-2018 Linaro Ltd. + * Copyright (C) 2014 Sony Mobile Communications AB + * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2024-2025 Qualcomm Innovation Center, Inc. All rights res= erved. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "qcom_common.h" +#include "qcom_q6v5.h" +#include "qcom_pil_info.h" + +#define WCSS_CRASH_REASON 421 + +#define WCSS_PAS_ID 0x6 +#define MPD_WCSS_PAS_ID 0xd + +#define Q6_WAIT_TIMEOUT (5 * HZ) + +struct wcss_sec { + struct device *dev; + struct qcom_rproc_glink glink_subdev; + struct qcom_rproc_ssr ssr_subdev; + struct qcom_q6v5 q6; + phys_addr_t mem_phys; + phys_addr_t mem_reloc; + void *mem_region; + size_t mem_size; + const struct wcss_data *desc; + + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + void *metadata; + size_t metadata_len; +}; + +struct wcss_data { + u32 pasid; + const char *ss_name; + bool auto_boot; + bool use_tmelcom; +}; + +static int wcss_sec_start(struct rproc *rproc) +{ + struct wcss_sec *wcss =3D rproc->priv; + struct device *dev =3D wcss->dev; + int ret; + + ret =3D qcom_q6v5_prepare(&wcss->q6); + if (ret) + return ret; + + if (wcss->desc->use_tmelcom) { + struct tmel_sec_auth tsa; + struct tmel_qmp_msg tqm; + + tsa.data =3D wcss->metadata; + tsa.size =3D wcss->metadata_len; + tsa.pas_id =3D wcss->desc->pasid; + tqm.msg =3D &tsa; + tqm.msg_id =3D TMEL_MSG_UID_SECBOOT_SEC_AUTH; + + ret =3D mbox_send_message(wcss->mbox_chan, (void *)&tqm); + if (ret < 0) { + dev_err(dev, "Failed to send message via mailbox\n"); + goto unprepare; + } + } else { + ret =3D qcom_scm_pas_auth_and_reset(wcss->desc->pasid); + if (ret) { + dev_err(dev, "wcss_reset failed\n"); + goto unprepare; + } + } + + ret =3D qcom_q6v5_wait_for_start(&wcss->q6, Q6_WAIT_TIMEOUT); + if (ret =3D=3D -ETIMEDOUT) + dev_err(dev, "start timed out\n"); + +unprepare: + qcom_q6v5_unprepare(&wcss->q6); + + return ret; +} + +static int wcss_sec_stop(struct rproc *rproc) +{ + struct wcss_sec *wcss =3D rproc->priv; + struct device *dev =3D wcss->dev; + int ret; + + if (wcss->desc->use_tmelcom) { + struct tmel_sec_auth tsa =3D {0}; + struct tmel_qmp_msg tqm; + + tsa.pas_id =3D wcss->desc->pasid; + tqm.msg =3D &tsa; + tqm.msg_id =3D TMEL_MSG_UID_SECBOOT_SS_TEAR_DOWN; + + mbox_send_message(wcss->mbox_chan, (void *)&tqm); + } else { + ret =3D qcom_scm_pas_shutdown(wcss->desc->pasid); + if (ret) { + dev_err(dev, "not able to shutdown\n"); + return ret; + } + } + + qcom_q6v5_unprepare(&wcss->q6); + + return 0; +} + +static void *wcss_sec_da_to_va(struct rproc *rproc, u64 da, size_t len, + bool *is_iomem) +{ + struct wcss_sec *wcss =3D rproc->priv; + int offset; + + offset =3D da - wcss->mem_reloc; + if (offset < 0 || offset + len > wcss->mem_size) + return NULL; + + return wcss->mem_region + offset; +} + +static int wcss_sec_load(struct rproc *rproc, const struct firmware *fw) +{ + struct wcss_sec *wcss =3D rproc->priv; + struct device *dev =3D wcss->dev; + int ret; + + if (wcss->desc->use_tmelcom) { + wcss->metadata =3D qcom_mdt_read_metadata(fw, &wcss->metadata_len, + rproc->firmware, wcss->dev); + if (IS_ERR(wcss->metadata)) { + ret =3D PTR_ERR(wcss->metadata); + dev_err(wcss->dev, "error %d reading firmware %s metadata\n", + ret, rproc->firmware); + return ret; + } + + ret =3D qcom_mdt_load_no_init(wcss->dev, fw, rproc->firmware, wcss->desc= ->pasid, + wcss->mem_region, wcss->mem_phys, wcss->mem_size, + &wcss->mem_reloc); + if (ret) { + kfree(wcss->metadata); + return ret; + } + } else { + ret =3D qcom_mdt_load(dev, fw, rproc->firmware, wcss->desc->pasid, wcss-= >mem_region, + wcss->mem_phys, wcss->mem_size, &wcss->mem_reloc); + if (ret) + return ret; + } + + qcom_pil_info_store("wcss", wcss->mem_phys, wcss->mem_size); + + return 0; +} + +static unsigned long wcss_sec_panic(struct rproc *rproc) +{ + struct wcss_sec *wcss =3D rproc->priv; + + return qcom_q6v5_panic(&wcss->q6); +} + +static void wcss_sec_copy_segment(struct rproc *rproc, + struct rproc_dump_segment *segment, + void *dest, size_t offset, size_t size) +{ + struct wcss_sec *wcss =3D rproc->priv; + struct device *dev =3D wcss->dev; + + if (!segment->io_ptr) + segment->io_ptr =3D ioremap_wc(segment->da, segment->size); + + if (!segment->io_ptr) { + dev_err(dev, "Failed to ioremap segment %pad size 0x%zx\n", + &segment->da, segment->size); + return; + } + + if (offset + size < segment->size) { + memcpy(dest, segment->io_ptr + offset, size); + } else { + iounmap(segment->io_ptr); + segment->io_ptr =3D NULL; + } +} + +static int wcss_sec_dump_segments(struct rproc *rproc, + const struct firmware *fw) +{ + struct device *dev =3D rproc->dev.parent; + struct reserved_mem *rmem =3D NULL; + struct device_node *node; + int num_segs, index; + int ret; + + /* + * Parse through additional reserved memory regions for the rproc + * and add them to the coredump segments + */ + num_segs =3D of_count_phandle_with_args(dev->of_node, + "memory-region", NULL); + for (index =3D 0; index < num_segs; index++) { + node =3D of_parse_phandle(dev->of_node, + "memory-region", index); + if (!node) + return -EINVAL; + + rmem =3D of_reserved_mem_lookup(node); + of_node_put(node); + if (!rmem) { + dev_err(dev, "unable to acquire memory-region index %d num_segs %d\n", + index, num_segs); + return -EINVAL; + } + + dev_dbg(dev, "Adding segment 0x%pa size 0x%pa", + &rmem->base, &rmem->size); + ret =3D rproc_coredump_add_custom_segment(rproc, + rmem->base, + rmem->size, + wcss_sec_copy_segment, + NULL); + if (ret) + return ret; + } + + return 0; +} + +static const struct rproc_ops wcss_sec_ops =3D { + .start =3D wcss_sec_start, + .stop =3D wcss_sec_stop, + .da_to_va =3D wcss_sec_da_to_va, + .load =3D wcss_sec_load, + .get_boot_addr =3D rproc_elf_get_boot_addr, + .panic =3D wcss_sec_panic, + .parse_fw =3D wcss_sec_dump_segments, +}; + +static int wcss_sec_alloc_memory_region(struct wcss_sec *wcss) +{ + struct device *dev =3D wcss->dev; + struct resource res; + int ret; + + ret =3D of_reserved_mem_region_to_resource(dev->of_node, 0, &res); + if (ret) { + dev_err(dev, "unable to acquire memory-region resource\n"); + return ret; + } + + wcss->mem_phys =3D res.start; + wcss->mem_reloc =3D res.start; + wcss->mem_size =3D resource_size(&res); + wcss->mem_region =3D devm_ioremap_resource_wc(dev, &res); + if (!wcss->mem_region) { + dev_err(dev, "unable to map memory region: %pR\n", &res); + return -ENOMEM; + } + + return 0; +} + +static int wcss_sec_probe(struct platform_device *pdev) +{ + const struct wcss_data *desc =3D of_device_get_match_data(&pdev->dev); + const char *fw_name =3D NULL; + struct wcss_sec *wcss; + struct clk *sleep_clk; + struct clk *int_clk; + struct rproc *rproc; + int ret; + + ret =3D of_property_read_string(pdev->dev.of_node, "firmware-name", + &fw_name); + if (ret < 0) + return ret; + + rproc =3D devm_rproc_alloc(&pdev->dev, desc->ss_name, &wcss_sec_ops, + fw_name, sizeof(*wcss)); + if (!rproc) { + dev_err(&pdev->dev, "failed to allocate rproc\n"); + return -ENOMEM; + } + + wcss =3D rproc->priv; + wcss->dev =3D &pdev->dev; + wcss->desc =3D desc; + + ret =3D wcss_sec_alloc_memory_region(wcss); + if (ret) + return ret; + + sleep_clk =3D devm_clk_get_optional_enabled(&pdev->dev, "sleep"); + if (IS_ERR(sleep_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(sleep_clk), + "Failed to get sleep clock\n"); + + int_clk =3D devm_clk_get_optional_enabled(&pdev->dev, "interconnect"); + if (IS_ERR(int_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(int_clk), + "Failed to get interconnect clock\n"); + + ret =3D qcom_q6v5_init(&wcss->q6, pdev, rproc, + WCSS_CRASH_REASON, NULL, NULL); + if (ret) + return ret; + + qcom_add_glink_subdev(rproc, &wcss->glink_subdev, desc->ss_name); + qcom_add_ssr_subdev(rproc, &wcss->ssr_subdev, desc->ss_name); + + rproc->auto_boot =3D false; + rproc->dump_conf =3D RPROC_COREDUMP_INLINE; + rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE); + + if (desc->use_tmelcom) { + wcss->mbox_client.dev =3D wcss->dev; + wcss->mbox_client.knows_txdone =3D true; + wcss->mbox_client.tx_block =3D true; + wcss->mbox_chan =3D mbox_request_channel(&wcss->mbox_client, 0); + if (IS_ERR_OR_NULL(wcss->mbox_chan)) + return dev_err_probe(wcss->dev, PTR_ERR(wcss->mbox_chan), + "mbox chan for IPC is missing\n"); + } + + ret =3D devm_rproc_add(&pdev->dev, rproc); + if (ret) + return ret; + + platform_set_drvdata(pdev, rproc); + + return 0; +} + +static void wcss_sec_remove(struct platform_device *pdev) +{ + struct rproc *rproc =3D platform_get_drvdata(pdev); + struct wcss_sec *wcss =3D rproc->priv; + + mbox_free_channel(wcss->mbox_chan); + qcom_remove_glink_subdev(rproc, &wcss->glink_subdev); + qcom_remove_ssr_subdev(rproc, &wcss->ssr_subdev); + qcom_q6v5_deinit(&wcss->q6); +} + +static const struct wcss_data wcss_sec_ipq5332_res_init =3D { + .pasid =3D MPD_WCSS_PAS_ID, + .ss_name =3D "q6wcss", +}; + +static const struct wcss_data wcss_sec_ipq5424_res_init =3D { + .pasid =3D MPD_WCSS_PAS_ID, + .ss_name =3D "q6wcss", + .use_tmelcom =3D true, +}; + +static const struct wcss_data wcss_sec_ipq9574_res_init =3D { + .pasid =3D WCSS_PAS_ID, + .ss_name =3D "q6wcss", +}; + +static const struct of_device_id wcss_sec_of_match[] =3D { + { .compatible =3D "qcom,ipq5018-wcss-sec-pil", .data =3D &wcss_sec_ipq533= 2_res_init }, + { .compatible =3D "qcom,ipq5332-wcss-sec-pil", .data =3D &wcss_sec_ipq533= 2_res_init }, + { .compatible =3D "qcom,ipq5424-wcss-sec-pil", .data =3D &wcss_sec_ipq542= 4_res_init }, + { .compatible =3D "qcom,ipq9574-wcss-sec-pil", .data =3D &wcss_sec_ipq957= 4_res_init }, + { }, +}; +MODULE_DEVICE_TABLE(of, wcss_sec_of_match); + +static struct platform_driver wcss_sec_driver =3D { + .probe =3D wcss_sec_probe, + .remove =3D wcss_sec_remove, + .driver =3D { + .name =3D "qcom-wcss-secure-pil", + .of_match_table =3D wcss_sec_of_match, + }, +}; +module_platform_driver(wcss_sec_driver); + +MODULE_DESCRIPTION("Hexagon WCSS Secure Peripheral Image Loader"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index b4795698d8c2a4e80ccafbe632436c4dfb636a1e..7b2159853345eec3d787f08413f= f086bbc59ae91 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -472,6 +472,7 @@ enum rproc_dump_mechanism { * @node: list node related to the rproc segment list * @da: device address of the segment * @size: size of the segment + * @io_ptr: ptr to store the ioremapped dump segment * @priv: private data associated with the dump_segment * @dump: custom dump function to fill device memory segment associated * with coredump @@ -483,6 +484,7 @@ struct rproc_dump_segment { dma_addr_t da; size_t size; =20 + void *io_ptr; void *priv; void (*dump)(struct rproc *rproc, struct rproc_dump_segment *segment, void *dest, size_t offset, size_t size); --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E83A02DF3C6; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; cv=none; b=RN7md75+TQZlCd9roio/mrZT46zUDNP1bqSWaWRZc6uFA0Sm1oEAos0g605YOrx5ZcZ2moWGyE1kmMvhve2gpRLU59mTMkh2TV6+pJ2MygJOmy9nGvmSg65FnUg/7miLMgZKKXUuKLMlNS2rC6NfEpy2tGHLzNlvdmcok0blfRk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; c=relaxed/simple; bh=VnwpWxR/8+nShFX5zfIEPvBeQMXdJgHrpvPMXyO7f/o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ev8XCEVCJ40HpNtpFtQgpx3yZiQWTJVFG/2Hnn6hVnY5MBAQaG/Gha8WUx2MWJ3a+ua/1LHaQIFc9lOit5zsPFMWIK2srwxGirE1Jwmj+ko54sr7OsfTx0Jx6gfF2IZdgUo/U7mpdPsGJXJPcWt8UUVLyy3hEAjnbSgR8EKS9f4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=piWE9jpr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="piWE9jpr" Received: by smtp.kernel.org (Postfix) with ESMTPS id 91317C2BCB0; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=VnwpWxR/8+nShFX5zfIEPvBeQMXdJgHrpvPMXyO7f/o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=piWE9jprgi+fIPy8Vo24aEXmkVcFWZg1vEB8eDRy3qHGbyaP9/Qq5FlMOtyKPeS1/ D8E+eYyHANiv7lt6n9FJZoLd/BreVqx5xEI+EHEiTEKOcq7tyVyRTOX3gmszrXjgG/ n0U++LTtshiEeFuUZX+zZPfFYdnwFLTOLlaknz67GHQsFmeMcBv2OZqP+F16q1XOqc 6DlDwLGhTaaOHfvBBcF1DAFdaReQas7ohbiPFwMtp63139950hlK3pqWd+QMoXyLic 2NCbalncTmpZTMgHy6oiDRSoqezSNgHFo38byOtD6Ghn4bm7drFUoAyFu6z3Vu/qgM 1g8PjhOc2gq9w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 862DED3B7EE; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:36 +0400 Subject: [PATCH v6 4/8] mailbox: qcom: fix IPC register offset for IPQ5424 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-4-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=1407; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=bQie0gh5+yB2rgVd9SAgk+hMuExkZX7LZ4wgufEEF9I=; b=JkUtwJghOWCoEUys3YdKv5xOJ7xnlN7fbmP7xkN6DpeOtJfyWr1ZqQN6pGZPBVJWyG39y1WFE AMGDx7pa+usCKZ45E/6S27LGUrAZK+aAoy6sqX2/85ie7VxJCIocHit X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: George Moussalem The IPC register in IPQ5424 is at offset 0xc instead of 0x8 as defined in driver data for msm8994. As such, switch to the existing apps_shared_apcs_data driver data which has offset set to 0xc. Signed-off-by: George Moussalem --- drivers/mailbox/qcom-apcs-ipc-mailbox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mailbox/qcom-apcs-ipc-mailbox.c b/drivers/mailbox/qcom= -apcs-ipc-mailbox.c index d3a8f6b4a03b368821ef9a5b24fee78037104610..258b03307869b244e053e7a3555= 31268114906df 100644 --- a/drivers/mailbox/qcom-apcs-ipc-mailbox.c +++ b/drivers/mailbox/qcom-apcs-ipc-mailbox.c @@ -164,7 +164,7 @@ static const struct of_device_id qcom_apcs_ipc_of_match= [] =3D { { .compatible =3D "qcom,sm6125-apcs-hmss-global", .data =3D &msm8994_apcs= _data }, { .compatible =3D "qcom,sm6115-apcs-hmss-global", .data =3D &msm8994_apcs= _data }, { .compatible =3D "qcom,ipq5332-apcs-apps-global", .data =3D &ipq6018_apc= s_data }, - { .compatible =3D "qcom,ipq5424-apcs-apps-global", .data =3D &msm8994_apc= s_data }, + { .compatible =3D "qcom,ipq5424-apcs-apps-global", .data =3D &apps_shared= _apcs_data }, { .compatible =3D "qcom,ipq8074-apcs-apps-global", .data =3D &ipq6018_apc= s_data }, { .compatible =3D "qcom,sc7180-apss-shared", .data =3D &apps_shared_apcs_= data }, { .compatible =3D "qcom,sc8180x-apss-shared", .data =3D &apps_shared_apcs= _data }, --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2820130FF36; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; cv=none; b=M32RBkTOwNmWKwORYBtrpAG1HQ2uypqTFJVV4jZD3nhu92f+K+EeAsNEPInIeFzArmloC2up0DWppscDgIULrozsWdnbbLvvePQboUSzsJZ54ZHKGTz71MbbYe/y7Ak2FY3q2Of88uNq/0BVJN1ecU76O83bQMpWAP0LCo7BWlM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; c=relaxed/simple; bh=fqcmFpPoc5B/uv5ucuzvYa4YZ5nagGJcM+2jcKrs+mY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MbBgvB6GmRaIzSJ51tLenyRNS4US+nq/0X3aKjAJCIHbhUQfNvl2ZFvsFNHWpwgfIM8BCgG+DG/vNgOgRiP9UPBBT0EdRCVnCu5B1YTv6GKQSJ25aAmD7W4ktLATfOdrBXEq3KAIzDzNouFevMdOvloHTi7Uw/ScBkLetWWDQhQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OIl3oYq7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OIl3oYq7" Received: by smtp.kernel.org (Postfix) with ESMTPS id A7539C2BC87; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=fqcmFpPoc5B/uv5ucuzvYa4YZ5nagGJcM+2jcKrs+mY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=OIl3oYq7dGUdMbEwE2wZ3Qv+sOJAdAyfLpGgnB0NTKPDCwE4ref/OWF8nF/B5EXaL sOWgiBBnokpmxsyqyt0UoVVGbxwVQ8IkqcQv1AMILcvBmQT4YZ9gRPfc1sty2KI4HX E2ge1VXc5ACIsu1LhD++vQuBli2zNh8igU+SDVXh0GWAHIqtlcCd/YqsVt/5QLaUiz S6/948rAugGjoot4EHLo0H07r2vFgGBV0qKeS3rDT6mHPKjsUBY3mT6a1G+dG9nWXT Tln2WHS1R2fJHYmy/QO5WByovFYr4AsfUa5jJeChTfMZ53f+8toaGbME/DhnqXkvOU cqA+F8xnbbvhw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E602D3B7E1; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:37 +0400 Subject: [PATCH v6 5/8] arm64: dts: qcom: ipq5018: add nodes to bring up q6 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-5-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=2649; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=sll66Msl0HywqzZYWOxYFHfmLXyUalHJSEerG/T57gM=; b=dCwpkISlr1Eo4IbdTmhiHt5wUwR/79QVGl2oDsOp7TXtEi1vs8TWOWg9kU6DhC+DdFhussJWZ MXnfxdYjfSMAN2PpzzzenF/FH6o9LG1gF0oiTkXMXPN2wosQ2V2MekP X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: George Moussalem Enable nodes required for q6 remoteproc bring up. Signed-off-by: George Moussalem Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 64 +++++++++++++++++++++++++++++++= ++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qc= om/ipq5018.dtsi index f024b3cba33f6100ac3f4d45598ff2356e026dcf..570899711b62bb286780f54db24= 61ebbc5291340 100644 --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi @@ -158,6 +158,11 @@ tz_region: tz@4ac00000 { reg =3D <0x0 0x4ac00000 0x0 0x200000>; no-map; }; + + q6_region: wcss@4b000000 { + no-map; + reg =3D <0x0 0x4b000000 0x0 0x1b00000>; + }; }; =20 soc: soc@0 { @@ -717,6 +722,41 @@ frame@b128000 { }; }; =20 + q6v5_wcss: remoteproc@cd00000 { + compatible =3D "qcom,ipq5018-wcss-sec-pil"; + reg =3D <0x0cd00000 0x10000>; + firmware-name =3D "ath11k/IPQ5018/hw1.0/q6_fw.mbn"; + interrupts-extended =3D <&intc GIC_SPI 291 IRQ_TYPE_EDGE_RISING>, + <&wcss_smp2p_in 0 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 1 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 2 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 3 IRQ_TYPE_NONE>; + interrupt-names =3D "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + clocks =3D <&gcc GCC_SLEEP_CLK_SRC>, + <&gcc GCC_SYS_NOC_WCSS_AHB_CLK>; + clock-names =3D "sleep", + "interconnect"; + + qcom,smem-states =3D <&wcss_smp2p_out 0>, + <&wcss_smp2p_out 1>; + qcom,smem-state-names =3D "shutdown", + "stop"; + + memory-region =3D <&q6_region>; + + glink-edge { + interrupts =3D ; + label =3D "rtr"; + qcom,remote-pid =3D <1>; + mboxes =3D <&apcs_glb 8>; + }; + }; + pcie1: pcie@80000000 { compatible =3D "qcom,pcie-ipq5018"; reg =3D <0x80000000 0xf1d>, @@ -991,4 +1031,28 @@ timer { , ; }; + + wcss: smp2p-wcss { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <435>, <428>; + + interrupt-parent =3D <&intc>; + interrupts =3D ; + + mboxes =3D <&apcs_glb 9>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <1>; + + wcss_smp2p_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + wcss_smp2p_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; }; --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AA603101DB; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; cv=none; b=eidW7pPMmCtpKqqC7jAseGr39U/2Ea34xlbBc1xplBux7YsXDiSpg8Ahl/0cm+zPM4+lE6ZDb36eXbnSfwnDTH7yVNkqurYQBW9r1Uro/Wr8dd8+pafS+HihXFShsYqJ5H0gG+Bhl6IK4MD/7Nwh7bENRrSzL9k00uaTZFHFbxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; c=relaxed/simple; bh=nhfyVPKPFjdRUSMI0tLPuUioNXlIyFKkVgmPSw9cTZE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n4spU04dWusfQjQgqAMhrYQDj0P6YDBQyl+dopwkmsY89OGyetbmdG2fytndaKD55xrKmgkCqzBzW1MoZ5PcuPxd4HONcVkfMVWCiVNF8emHUvAPo0JyLMbXPmNzVNL6ldxkC7kyODy7F/NxncYJ84EoGuRcEpUET8mGNXY6Ox4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MLDGa321; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MLDGa321" Received: by smtp.kernel.org (Postfix) with ESMTPS id C2D58C19423; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=nhfyVPKPFjdRUSMI0tLPuUioNXlIyFKkVgmPSw9cTZE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=MLDGa321rQuVeXt9IJhTUavcldpJ/MiPbCVr8vuvVGhxkO9X7pFAfQefYYkN9havg P4+V2kp0ZiDflWhh1mQuTM2SKD7MrB/lKimmYC0Gkqk3YvO80bXkdBuN7XkPjexUrk 8PPedWasRtaknEZ7lWrom8x44yOr1QPHjda/EFBQoXGm1O1rjECgevA53LUw+f0Fzk vX4OgIdDESvXuXnkGGfS38FR+zqsE+AroP31FoujSG4G2pLd6eVBO76RiM0OyY76lv tqwYbCjr5Yfw9u/CDhOjT4Nb7XxMr6S2/T2j/Ht11K0YFiP8QlE0W1OdSwgHtbd5F/ E5+zHAXGauTPg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B72EDD3B7E8; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:38 +0400 Subject: [PATCH v6 6/8] arm64: dts: qcom: ipq5332: add nodes to bring up q6 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-6-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Gokul Sriram Palanisamy , George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=3002; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=Gswde2W3JD/OmCvigFFq4uqsbwMQe0X0RLimQqg+l3I=; b=LKXC0SIOIxfSP8gcyrTWlOn5H8oj8HDWrAmo3pMRpPc1YMnuwp58jdcWXWenyHySbtybrq3aG EqIeAgyfbPGCEXAosXp1wgsyONUtamcJExtVyZ0SaQt3h+2ZpCx5hy5 X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Manikanta Mylavarapu Enable nodes required for q6 remoteproc bring up. Signed-off-by: Manikanta Mylavarapu Signed-off-by: Gokul Sriram Palanisamy Signed-off-by: George Moussalem --- arch/arm64/boot/dts/qcom/ipq5332.dtsi | 64 +++++++++++++++++++++++++++++++= +++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qc= om/ipq5332.dtsi index 45fc512a3bab221c0d99f819294abf63369987da..6bc60285d9458f04c67222112b8= 2faa56fbdeb11 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi @@ -2,7 +2,7 @@ /* * IPQ5332 device tree source * - * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights res= erved. + * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 #include @@ -146,6 +146,11 @@ smem@4a800000 { =20 hwlocks =3D <&tcsr_mutex 3>; }; + + q6_region: wcss@4a900000 { + reg =3D <0x0 0x4a900000 0x0 0x2b00000>; + no-map; + }; }; =20 soc@0 { @@ -586,6 +591,39 @@ frame@b128000 { }; }; =20 + q6v5_wcss: remoteproc@d100000 { + compatible =3D "qcom,ipq5332-wcss-sec-pil"; + reg =3D <0x0d100000 0x10000>; + firmware-name =3D "ath12k/IPQ5332/hw1.0/q6_fw0.mbn"; + interrupts-extended =3D <&intc GIC_SPI 421 IRQ_TYPE_EDGE_RISING>, + <&smp2p_wcss_in 0 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 1 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 2 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 3 IRQ_TYPE_NONE>; + interrupt-names =3D "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + clocks =3D <&gcc GCC_IM_SLEEP_CLK>; + clock-names =3D "sleep"; + + qcom,smem-states =3D <&smp2p_wcss_out 1>, + <&smp2p_wcss_out 0>; + qcom,smem-state-names =3D "stop", + "shutdown"; + + memory-region =3D <&q6_region>; + + glink-edge { + interrupts =3D ; + label =3D "rtr"; + qcom,remote-pid =3D <1>; + mboxes =3D <&apcs_glb 8>; + }; + }; + pcie1: pcie@18000000 { compatible =3D "qcom,pcie-ipq5332", "qcom,pcie-ipq9574"; reg =3D <0x18000000 0xf1c>, @@ -871,4 +909,28 @@ timer { , ; }; + + wcss: smp2p-wcss { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <435>, <428>; + + interrupt-parent =3D <&intc>; + interrupts =3D ; + + mboxes =3D <&apcs_glb 9>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <1>; + + smp2p_wcss_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_wcss_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; }; --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3563C3115B5; Mon, 8 Dec 2025 12:26:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; cv=none; b=X+wPLiS132WsNmnZ3Nz2k58ItOEQPdeZOF0Z83VqoOXj2gQlc23BPJ0kEo/K5h6z9rouaJqE3CUFWIvl+AIUNQ+qoU68rVzR+swSWzvw+QhXcRi+dgbsitiEAQI/I62zCZ9BuEKD+impeMgpPT94Wpi9noaSi3OrYVgSbDECVcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; c=relaxed/simple; bh=dRie47FOpA96SMRBxVlnQQl5cMhS7S0yMQBvp32acdU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DP0zMHlSasWQDT4BMtac3w2epfKLNbvQiSnm5QWJVE1ybOM5I9ApK8r8sCpsbS/pZRpFvBPUk/WLbsliKvrrd/IH1UrGwrr8qsuwqBkuyjr6pzGwWKIdgqbCtd3iqCt15YaysDrLHefgP5shgGOLCL7mshE5p8PYWmtnlMgMdyk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SM4A9Ipq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SM4A9Ipq" Received: by smtp.kernel.org (Postfix) with ESMTPS id D7008C19422; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196775; bh=dRie47FOpA96SMRBxVlnQQl5cMhS7S0yMQBvp32acdU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=SM4A9IpqUZseqMXhmDC5n5YGBdYFjFamgpRrZ2eg0QGseWDD2ku399aHglw3AjRmb Ojk/OB5K2oPmA3tCLx97mov7T3KJRr4tyLD6r2rZFmd8p4I48fF0yq38lU4KIFHPeX 2LUP9TxOcA+kAjza66erc4zbV5Rn2+LhfpV2FW63623D3Z64GD0ZegVUajfOroxeWA aK4XtQBszJq0leGVa4XfSUO0IZd+eBncGCdTFzuz4iwzQcBdLjqrq7jEgfhCQVgED9 rkImRMSRV8xUcxCdqtG7bfZ/31S1ksujIoU8QiRYofqRxQAZk/oPQuCIHqS1zaREWH jqydf+rDCLNQw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD1BDD3B7ED; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:39 +0400 Subject: [PATCH v6 7/8] arm64: dts: qcom: ipq5424: add nodes to bring up q6 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-7-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Gokul Sriram Palanisamy , George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=2895; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=qPV6GT5bCq9i4n/U0HBhMPTiFUd78LEt1PreAHNd75w=; b=3DPqVEVCsvF9yIFSJpTxarghGHMftOFqzuSdXcOtXictrtrLxDJzE/6q/FLVoZo8pZF5wLgkW GAeEQhaEdzHBynuOI8D2eA0IrVmnUsfDbTfllsV4QMAbPwLysxIGfhV X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Gokul Sriram Palanisamy Enable nodes required for q6 remoteproc bring up. Signed-off-by: Gokul Sriram Palanisamy Signed-off-by: George Moussalem --- arch/arm64/boot/dts/qcom/ipq5424.dtsi | 68 +++++++++++++++++++++++++++++++= ++++ 1 file changed, 68 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qc= om/ipq5424.dtsi index eb393f3fd728f0b2fc8cd93c849f8c170d76e312..c73a7a1bf397887befd38434439= 4e30f05c372f2 100644 --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi @@ -222,6 +222,11 @@ tfa@8a832000 { no-map; status =3D "disabled"; }; + + q6_region: wcss@8a900000 { + reg =3D <0x0 0x8a900000 0x0 0x2800000>; + no-map; + }; }; =20 soc@0 { @@ -752,6 +757,37 @@ dwc_0: usb@8a00000 { }; }; =20 + q6v5_wcss: remoteproc@d100000 { + compatible =3D "qcom,ipq5424-wcss-sec-pil"; + reg =3D <0 0x0d100000 0 0x4040>; + firmware-name =3D "ath12k/IPQ5424/hw1.0/q6_fw0.mbn"; + interrupts-extended =3D <&intc GIC_SPI 508 IRQ_TYPE_EDGE_RISING>, + <&smp2p_wcss_in 0 0>, + <&smp2p_wcss_in 1 0>, + <&smp2p_wcss_in 2 0>, + <&smp2p_wcss_in 3 0>; + interrupt-names =3D "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + mboxes =3D <&tmel_qmp 0>; + qcom,smem-states =3D <&smp2p_wcss_out 1>, + <&smp2p_wcss_out 0>; + qcom,smem-state-names =3D "stop", + "shutdown"; + + memory-region =3D <&q6_region>; + + glink-edge { + interrupts =3D ; + label =3D "rtr"; + qcom,remote-pid =3D <1>; + mboxes =3D <&apcs_glb 8>; + }; + }; + timer@f420000 { compatible =3D "arm,armv7-timer-mem"; reg =3D <0 0xf420000 0 0x1000>; @@ -811,6 +847,14 @@ frame@f42d000 { }; }; =20 + apcs_glb: mailbox@f400000 { + compatible =3D "qcom,ipq5424-apcs-apps-global", + "qcom,ipq6018-apcs-apps-global"; + reg =3D <0 0x0f400000 0 0x10000>; + #clock-cells =3D <1>; + #mbox-cells =3D <1>; + }; + apss_clk: clock-controller@fa80000 { compatible =3D "qcom,ipq5424-apss-clk"; reg =3D <0x0 0x0fa80000 0x0 0x20000>; @@ -1426,4 +1470,28 @@ timer { , ; }; + + wcss: smp2p-wcss { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <435>, <428>; + + interrupt-parent =3D <&intc>; + interrupts =3D ; + + mboxes =3D <&apcs_glb 9>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <1>; + + smp2p_wcss_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_wcss_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; }; --=20 2.52.0 From nobody Fri Dec 19 10:09:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D64B30FF28; Mon, 8 Dec 2025 12:26:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; cv=none; b=TBo+riCgAEwwLsiEVFol/Q8JCBRokd+ctw7JmGiti93x0Xv9vpub72xYjwiCTqtu3GAP9E0MhpeDuP862/tKHOzr/8h8IjTE4pd+eV9P9/PbsvoLnFhEB/sBBGbhENJV1lQ/gBDeIpXeArTERYpkr6iY6b19ZQD+jMmsFI0xmjM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765196776; c=relaxed/simple; bh=rZXzoLLBWeC9ORcQCuU9CkY4qwXer/cbSvZdQlfbWKs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MpTXLFHHBsQE47Noe8wtxvZQUxX2IPA6nxv9Ouapyo2nTAhQ3nwsJpXq3k2MSEKM1fkaTwKCx8qoNEPH6/c8Hcwl4sBb1P4gtn1qmf8RjqZNfzttpzknPJMobgHs+trG8N0C4bdzB+VewFm3oSYx8U/9MZwZu9ZCjhBVlgwEDNA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gp2vMotR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gp2vMotR" Received: by smtp.kernel.org (Postfix) with ESMTPS id EDBB2C4CEF1; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765196776; bh=rZXzoLLBWeC9ORcQCuU9CkY4qwXer/cbSvZdQlfbWKs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=gp2vMotRpAn1kSSJ5kQrHDvL5p7BPNWV+t74So8NY704j3Ew+nfCohjgt/ZnuGQsF JbRzKX+PKdr/iCP/WyZgVqoClZU9dctOn9qikumRqMbY05XCPgwfUjiFyDYH+ZXlT2 76n4Ia1eKiEnv+RWE4Ua61u/Y3JiSwkpbmNcqDj6ACu4Lwmo6/z74kRwkbsDXN00MY xXwePP0qvewn1EVudAuHaZFR4AlARRItaDNsKrI0cAbF7FWX15lK+l16kymdDb2Tq+ C2fk7Po5kw3ccZkhOUupU+evZypdUEUXL8oAmP0+ihpXXFle1TTTP7V42/pzy/Fst7 li2Lojskl0A0g== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0E63D3B7E1; Mon, 8 Dec 2025 12:26:15 +0000 (UTC) From: George Moussalem via B4 Relay Date: Mon, 08 Dec 2025 16:25:40 +0400 Subject: [PATCH v6 8/8] arm64: dts: qcom: ipq9574: add nodes to bring up q6 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-ipq5018-wifi-v6-8-d0ce2facaa5f@outlook.com> References: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> In-Reply-To: <20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com> To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manikanta Mylavarapu , Jassi Brar Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, Gokul Sriram Palanisamy , George Moussalem X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765196772; l=2997; i=george.moussalem@outlook.com; s=20250321; h=from:subject:message-id; bh=CZxpHAxQU8P0Zkwc6/vgoyUSapmsDexzZkl4mhyZRYQ=; b=wxRC8n5WWmFHvZdm3POe1AQVnh3ohqhwmkvVArd7wXgPptbTszXDiIIXwVChUanOtdeHReUDl 9up4P9iQfXTD57xBtEdSGMskh1n95zHoAL1uqAeDKUljWIcIF80B2la X-Developer-Key: i=george.moussalem@outlook.com; a=ed25519; pk=/PuRTSI9iYiHwcc6Nrde8qF4ZDhJBlUgpHdhsIjnqIk= X-Endpoint-Received: by B4 Relay for george.moussalem@outlook.com/20250321 with auth_id=364 X-Original-From: George Moussalem Reply-To: george.moussalem@outlook.com From: Manikanta Mylavarapu Enable nodes required for q6 remoteproc bring up. Signed-off-by: Manikanta Mylavarapu Signed-off-by: Gokul Sriram Palanisamy Signed-off-by: George Moussalem --- arch/arm64/boot/dts/qcom/ipq9574.dtsi | 60 +++++++++++++++++++++++++++++++= +++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qc= om/ipq9574.dtsi index 86c9cb9fffc98fdd1b0b08e81428ce5e7bb87e17..83e437bdd8a81a1bdae077ed3e9= 05d3a27402c23 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -3,7 +3,7 @@ * IPQ9574 SoC device tree source * * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights re= served. + * Copyright (c) 2023-2025, Qualcomm Innovation Center, Inc. All rights re= served. */ =20 #include @@ -226,6 +226,11 @@ smem@4aa00000 { hwlocks =3D <&tcsr_mutex 3>; no-map; }; + + q6_region: wcss@4ab00000 { + reg =3D <0x0 0x4ab00000 0x0 0x2b00000>; + no-map; + }; }; =20 soc: soc@0 { @@ -903,6 +908,35 @@ frame@b128000 { }; }; =20 + q6v5_wcss: remoteproc@cd00000 { + compatible =3D "qcom,ipq9574-wcss-sec-pil"; + reg =3D <0x0cd00000 0x10000>; + firmware-name =3D "ath11k/IPQ9574/hw1.0/q6_fw.mbn"; + interrupts-extended =3D <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>, + <&smp2p_wcss_in 0 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 1 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 2 IRQ_TYPE_NONE>, + <&smp2p_wcss_in 3 IRQ_TYPE_NONE>; + interrupt-names =3D "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + qcom,smem-states =3D <&smp2p_wcss_out 1>, + <&smp2p_wcss_out 0>; + qcom,smem-state-names =3D "stop", + "shutdown"; + memory-region =3D <&q6_region>; + + glink-edge { + interrupts =3D ; + label =3D "rtr"; + qcom,remote-pid =3D <1>; + mboxes =3D <&apcs_glb 8>; + }; + }; + pcie1: pcie@10000000 { compatible =3D "qcom,pcie-ipq9574"; reg =3D <0x10000000 0xf1d>, @@ -1506,4 +1540,28 @@ timer { , ; }; + + wcss: smp2p-wcss { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <435>, <428>; + + interrupt-parent =3D <&intc>; + interrupts =3D ; + + mboxes =3D <&apcs_glb 9>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <1>; + + smp2p_wcss_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_wcss_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; }; --=20 2.52.0