From nobody Sat Dec 27 16:57:11 2025 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5677618033 for ; Mon, 18 Dec 2023 10:28:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BU17d7Xd" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-40c48d7a7a7so27098735e9.3 for ; Mon, 18 Dec 2023 02:28:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1702895294; x=1703500094; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=71CxKbWqIB1thWUHFZAzLfbTO4lgIALsc6uKYJhAAGc=; b=BU17d7Xd4azDuvLekGXnXqHMEq6jwEv04j7qbxwVjwAL6qX5hkJxeWvN3ldR4WK17D JAnfTuBbBjaPninVQLJPffuYXl51a53ItvJzVfx20exoMJewkkXngfD2k6X+Hu31HE46 LTDAzG4FI4uVfS9VQ+EKx8g337HdHdQOVILI+RXKN4mAU6PNG3d679NTW1VneHsmGPdH vUQUzgJ97Y567GnRomWwaHJdyPnFHCB+zm1aJ1i45kx0bRxH8Dv32rFyRzbQTPO+Av6t Jp29AvBpJodcPvXnl6VKz1LWvf23OrdOowfFjzrrYNgHcUlnZIdOep58AidVEUM7JD0I tTpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702895294; x=1703500094; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=71CxKbWqIB1thWUHFZAzLfbTO4lgIALsc6uKYJhAAGc=; b=K4IR57gidixsU8NWbKB357LYvvHs9xXfubARfgziaTxrFGAyNvNYKskCAlhQzyVYvO DIuCoDyDQu8HuRiZgGAq+08z7TbdhhpTGXWmauTINMg6vOIkC0sdWxLdZX2VoOdOUBsy Z2XHXOUjSY+uIAP/07Fhx+j2cE9rlLTjk/iE0TUeAkpsZvZltMzQoFdFkLKw1uwFALfC D74obsN84ijCRxJ0xo+7GbGG/D8DA1pjd185rQDoyvGUS3CFthPerdz80q7c+7zQa/WE HTNBH/7RavxcW6XsQfV2u8RfMZwC/2HfWoX3vhrmJa6+Fn1iQoOg76yFTGVZPl8y21hz Q8Wg== X-Gm-Message-State: AOJu0Yxe2nbJ/oQI/8sZdleywpVDGJNOzkEiP4O5jsVaIJDia0GousM7 EsH12egJ42dCoUL2x1LCuAfRzw== X-Google-Smtp-Source: AGHT+IEwLSOZuZSMI7u5hxH0v/pOD+2428m4bH3qY6/baCeQ1kphytNaOv4mdV+yWww/e5AqiYSXUA== X-Received: by 2002:a05:600c:a08:b0:40d:1c4b:77a0 with SMTP id z8-20020a05600c0a0800b0040d1c4b77a0mr108345wmp.25.1702895294523; Mon, 18 Dec 2023 02:28:14 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ay35-20020a05600c1e2300b0040b2b38a1fasm41857967wmb.4.2023.12.18.02.28.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 02:28:13 -0800 (PST) From: Neil Armstrong Date: Mon, 18 Dec 2023 11:28:09 +0100 Subject: [PATCH v6 1/3] dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS 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: <20231218-topic-sm8650-upstream-remoteproc-v6-1-3d16b37f154b@linaro.org> References: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> In-Reply-To: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Krzysztof Kozlowski X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=3084; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=gsIvwnD1pTzAEzxjRT3QO/jWU2a/vS/+hNR3Zbvsze0=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlgB67P/uAtzUgRlywwZdgEhKq/F/myHYs24NH7z7w ziHnJZOJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZYAeuwAKCRB33NvayMhJ0dphD/ 901Odi/wYrAY1+eFQqL6S15/Mg/vifv9Jal3WFBo64/Un5u2Ibse6RDCTotLpNRv6zzxGaeFNOwlzl LdXki0h8mywPZJy/6Ao0n8SrmhmbSlTa/FAxdXNUVmyMynLVqLAGcha6Tu/fnldzUhBUj8lxMB5Sv2 /f+OjcEyxuLB1LI8lKrDQIKIs1B/oPx8CfHpIm3US1ZJLhi2QWx2UK0fUfnVYFzV2Vd9gHO6QTYTm/ wNfUmifou+zhIEITdbcTH/cyf8RdSjD2im2rSKB/k/uFyMV2Iy/zk/A7D+CV8RyFqTLhX8ZST3fxqN mZDKJpzodzClECd4gTQq63ELa9kNyMF41uSLmE/T3tE1YvQ2TGcMBXj6AhPHORLs7/Ru1FOueaX7be o9veqnUvHcVqulotiynopSa5l5W/VDjo9eYS8LTxrD/zJI1Ru11bqlb9BwscMXxGqr35l1heVESxN6 vI9r/XwYBtRVpkyhmQRkYM2rlHSHzC0MupoNtblZkUw5oL1y1ZDG3KGvAzLbdtRqN4bHazRno5fR6q /3h/LsST0SfcCL/9MbMVGhdNTSyCibu08e65b4BOIuCYBbMyO4A/iA/aJbAMQPzlj+Wi/7re7Xfw+n QrMiEVQIZGzfrDGCn86EOcZgs3nNrZuewPUENUPakMMHH0abkrNxMYtM/3CQ== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Document the DSP Peripheral Authentication Service on the SM8650 Platform. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Neil Armstrong --- .../bindings/remoteproc/qcom,sm8550-pas.yaml | 44 ++++++++++++++++++= +++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.y= aml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml index 58120829fb06..4e8ce9e7e9fa 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml @@ -19,6 +19,9 @@ properties: - qcom,sm8550-adsp-pas - qcom,sm8550-cdsp-pas - qcom,sm8550-mpss-pas + - qcom,sm8650-adsp-pas + - qcom,sm8650-cdsp-pas + - qcom,sm8650-mpss-pas =20 reg: maxItems: 1 @@ -49,6 +52,7 @@ properties: - description: Memory region for main Firmware authentication - description: Memory region for Devicetree Firmware authentication - description: DSM Memory region + - description: DSM Memory region 2 =20 required: - compatible @@ -63,6 +67,7 @@ allOf: enum: - qcom,sm8550-adsp-pas - qcom,sm8550-cdsp-pas + - qcom,sm8650-adsp-pas then: properties: interrupts: @@ -71,7 +76,26 @@ allOf: maxItems: 5 memory-region: maxItems: 2 - else: + - if: + properties: + compatible: + enum: + - qcom,sm8650-cdsp-pas + then: + properties: + interrupts: + maxItems: 5 + interrupt-names: + maxItems: 5 + memory-region: + minItems: 3 + maxItems: 3 + - if: + properties: + compatible: + enum: + - qcom,sm8550-mpss-pas + then: properties: interrupts: minItems: 6 @@ -79,12 +103,28 @@ allOf: minItems: 6 memory-region: minItems: 3 + maxItems: 3 + - if: + properties: + compatible: + enum: + - qcom,sm8650-mpss-pas + then: + properties: + interrupts: + minItems: 6 + interrupt-names: + minItems: 6 + memory-region: + minItems: 4 + maxItems: 4 =20 - if: properties: compatible: enum: - qcom,sm8550-adsp-pas + - qcom,sm8650-adsp-pas then: properties: power-domains: @@ -101,6 +141,7 @@ allOf: compatible: enum: - qcom,sm8550-mpss-pas + - qcom,sm8650-mpss-pas then: properties: power-domains: @@ -116,6 +157,7 @@ allOf: compatible: enum: - qcom,sm8550-cdsp-pas + - qcom,sm8650-cdsp-pas then: properties: power-domains: --=20 2.34.1 From nobody Sat Dec 27 16:57:11 2025 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8489913FF6 for ; Mon, 18 Dec 2023 10:28:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BPs0yRvi" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-40c38de1ee4so27246875e9.0 for ; Mon, 18 Dec 2023 02:28:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1702895295; x=1703500095; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=brusERLuF9g6InfhOI5cvRdOOm8bY1Bt/He5xK1JCeI=; b=BPs0yRvikcoZulo+U1dBH9rMg43owCp6w3eCw9jgvpmp/Fra8Fjc2xBO1xOSMlkVkh d0gTA99FzUIwz8jJvxmk8t9FLu/hKz8vAWdC0t/iJoABdwL243qNllIwq6IYUVIzDkfk YpiwB7YonrFCF0pT8UcpiqfFnn2BOLu5dhnIn6/YL4bQ4p8dllqqqoI5iRbUTonlsXfc nxx3INctiNg7xU5IYzx+No4FKLpp5Y/jXv0ylpFKu+xTE4QZTG2ySiR96qmFI6Owiuqe XcbAcZ93r6sZ/6kI1WEd5C/nDZ2A4UZkYeDPAb4qosXQTeE6I6vuhiKNpmkXuoRBM5iA dVQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702895295; x=1703500095; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=brusERLuF9g6InfhOI5cvRdOOm8bY1Bt/He5xK1JCeI=; b=emGcWuSfjbvSTb8NqyBMQjLnpn6vqvcW95Dpb0LzbEfPgV9Xc2jmmq4ANIvuzpbArF uUCha5lMQTgAUnJObkMoyB9GIyyuWS4GLRDkv6J73E2f6oWIChBlg6rZwp866wKFAWUZ Rlm7ZtbEMVhVQmhYl0eAQcoAXdkFr+v2F0hM7e1I9PrWjjQqKVE2rzG8uEbT9CXsx6C5 C6KP4DdikpUd1K6rIVlZ5qE0x6q04OTxAwkgSguxUxMCtaKINE7EibBWGIKE8Y79xzYC YA+IuaFcOeG60nrcCSLRQmXC5blQUtSnYYn5zdGGx8SuwwBzMmkOCVEKheZa3+6ijMtd w8KQ== X-Gm-Message-State: AOJu0YxxJafa0h/xNjrR3sngi3TxzYI2V684MiH17LY/k5beW8gUkoVx E0cmuF228hcsrKf3m+w2ycnZnQ== X-Google-Smtp-Source: AGHT+IGcvTDwhd5gtAZxk3beaIc4nJhhiUcrpnVVNHEww7z/HT6hqj48Es5MK6YHfxePjX/GZg6DbQ== X-Received: by 2002:a05:600c:54e6:b0:40b:5e21:ec34 with SMTP id jb6-20020a05600c54e600b0040b5e21ec34mr7776468wmb.102.1702895295476; Mon, 18 Dec 2023 02:28:15 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ay35-20020a05600c1e2300b0040b2b38a1fasm41857967wmb.4.2023.12.18.02.28.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 02:28:15 -0800 (PST) From: Neil Armstrong Date: Mon, 18 Dec 2023 11:28:10 +0100 Subject: [PATCH v6 2/3] remoteproc: qcom: pas: make region assign more generic 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: <20231218-topic-sm8650-upstream-remoteproc-v6-2-3d16b37f154b@linaro.org> References: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> In-Reply-To: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Mukesh Ojha X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=6221; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=mMV4sYhyuHxZXOCyI694/SnyEcdmuikG1JEY+XT6GWQ=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlgB67SBNIAHpvz/xAlFvclYguS84GF72MbxQbtGK1 lgiz9hWJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZYAeuwAKCRB33NvayMhJ0VTTD/ 4jYxPXOclmW7AecpuxKV9iJwB0FtH/m2MmetGmTWGoJmjXcf9Ye7UqHEPEKG6k49NAMKBEWpikcW2I vj0p6AnX8UG9ylJkA6PyXvmBOI6h5h2Q2mQUlpyKhn6Li32bsA8QdOPRFPQzfFdkUIN5sMCd+HSuCd af5d2F8Pm4WG8F6AvAOGuHc1ITt0zEZwWrloyoRXnUp/kB5hvd+csl7sxyGYZIFz821kaWQSk+VF28 XgOS0Ke59+a8IBRZjlBhmu2SVGjnUI5ewEDalguHCWGqGyZlShGg6Ryr+jP9uKFRQObd7qQJp0cmcs 78IYbRFppiELZYY+WT06IlrnpRQbB0rtmvcopa0i65Z2+5k1S9CrtqrUHdoi5vzEfCBfnjber2YMZk 2bgEGGfdo/Iyv5zTwWlAj99q5WZFcPwB6sjBX1kMGqR5cM/tEq1ohvWirWnJ2ukJ2qOITRCRRTcNDO t4WtJknNbs80OF+FByCB/PFZhyGUg/ieIg5id1jGjxEsZc1zwJofiH3aeTQxhiijnTe8zhC/O1/xOR 3shcLLND0dqLb0XvoVldcpXz3nDopZcgd9tJlA52ilKEhdyBJ1eQhQorIz8gsqv9/lgDUpcmhiyrZ2 BzG9vxdU5ckgWbcMKCiO00L5kHPikp+d36lZepwaJQs+hgXfH6iGTL7Qp1lg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The current memory region assign only supports a single memory region. But new platforms introduces more regions to make the memory requirements more flexible for various use cases. Those new platforms also shares the memory region between the DSP and HLOS. To handle this, make the region assign more generic in order to support more than a single memory region and also permit setting the regions permissions as shared. Reviewed-by: Mukesh Ojha Signed-off-by: Neil Armstrong --- drivers/remoteproc/qcom_q6v5_pas.c | 100 ++++++++++++++++++++++++---------= ---- 1 file changed, 66 insertions(+), 34 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index a9dd58608052..e90783fd1129 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -33,6 +33,8 @@ =20 #define ADSP_DECRYPT_SHUTDOWN_DELAY_MS 100 =20 +#define MAX_ASSIGN_COUNT 2 + struct adsp_data { int crash_reason_smem; const char *firmware_name; @@ -51,6 +53,9 @@ struct adsp_data { int ssctl_id; =20 int region_assign_idx; + int region_assign_count; + bool region_assign_shared; + int region_assign_vmid; }; =20 struct qcom_adsp { @@ -87,15 +92,18 @@ struct qcom_adsp { phys_addr_t dtb_mem_phys; phys_addr_t mem_reloc; phys_addr_t dtb_mem_reloc; - phys_addr_t region_assign_phys; + phys_addr_t region_assign_phys[MAX_ASSIGN_COUNT]; void *mem_region; void *dtb_mem_region; size_t mem_size; size_t dtb_mem_size; - size_t region_assign_size; + size_t region_assign_size[MAX_ASSIGN_COUNT]; =20 int region_assign_idx; - u64 region_assign_perms; + int region_assign_count; + bool region_assign_shared; + int region_assign_vmid; + u64 region_assign_owners[MAX_ASSIGN_COUNT]; =20 struct qcom_rproc_glink glink_subdev; struct qcom_rproc_subdev smd_subdev; @@ -590,37 +598,53 @@ static int adsp_alloc_memory_region(struct qcom_adsp = *adsp) =20 static int adsp_assign_memory_region(struct qcom_adsp *adsp) { - struct reserved_mem *rmem =3D NULL; - struct qcom_scm_vmperm perm; + struct qcom_scm_vmperm perm[MAX_ASSIGN_COUNT]; struct device_node *node; + unsigned int perm_size; + int offset; int ret; =20 if (!adsp->region_assign_idx) return 0; =20 - node =3D of_parse_phandle(adsp->dev->of_node, "memory-region", adsp->regi= on_assign_idx); - if (node) - rmem =3D of_reserved_mem_lookup(node); - of_node_put(node); - if (!rmem) { - dev_err(adsp->dev, "unable to resolve shareable memory-region\n"); - return -EINVAL; - } + for (offset =3D 0; offset < adsp->region_assign_count; ++offset) { + struct reserved_mem *rmem =3D NULL; + + node =3D of_parse_phandle(adsp->dev->of_node, "memory-region", + adsp->region_assign_idx + offset); + if (node) + rmem =3D of_reserved_mem_lookup(node); + of_node_put(node); + if (!rmem) { + dev_err(adsp->dev, "unable to resolve shareable memory-region index %d\= n", + offset); + return -EINVAL; + } =20 - perm.vmid =3D QCOM_SCM_VMID_MSS_MSA; - perm.perm =3D QCOM_SCM_PERM_RW; + if (adsp->region_assign_shared) { + perm[0].vmid =3D QCOM_SCM_VMID_HLOS; + perm[0].perm =3D QCOM_SCM_PERM_RW; + perm[1].vmid =3D adsp->region_assign_vmid; + perm[1].perm =3D QCOM_SCM_PERM_RW; + perm_size =3D 2; + } else { + perm[0].vmid =3D adsp->region_assign_vmid; + perm[0].perm =3D QCOM_SCM_PERM_RW; + perm_size =3D 1; + } =20 - adsp->region_assign_phys =3D rmem->base; - adsp->region_assign_size =3D rmem->size; - adsp->region_assign_perms =3D BIT(QCOM_SCM_VMID_HLOS); + adsp->region_assign_phys[offset] =3D rmem->base; + adsp->region_assign_size[offset] =3D rmem->size; + adsp->region_assign_owners[offset] =3D BIT(QCOM_SCM_VMID_HLOS); =20 - ret =3D qcom_scm_assign_mem(adsp->region_assign_phys, - adsp->region_assign_size, - &adsp->region_assign_perms, - &perm, 1); - if (ret < 0) { - dev_err(adsp->dev, "assign memory failed\n"); - return ret; + ret =3D qcom_scm_assign_mem(adsp->region_assign_phys[offset], + adsp->region_assign_size[offset], + &adsp->region_assign_owners[offset], + perm, perm_size); + if (ret < 0) { + dev_err(adsp->dev, "assign memory %d failed\n", offset); + return ret; + } } =20 return 0; @@ -629,20 +653,23 @@ static int adsp_assign_memory_region(struct qcom_adsp= *adsp) static void adsp_unassign_memory_region(struct qcom_adsp *adsp) { struct qcom_scm_vmperm perm; + int offset; int ret; =20 - if (!adsp->region_assign_idx) + if (!adsp->region_assign_idx || adsp->region_assign_shared) return; =20 - perm.vmid =3D QCOM_SCM_VMID_HLOS; - perm.perm =3D QCOM_SCM_PERM_RW; + for (offset =3D 0; offset < adsp->region_assign_count; ++offset) { + perm.vmid =3D QCOM_SCM_VMID_HLOS; + perm.perm =3D QCOM_SCM_PERM_RW; =20 - ret =3D qcom_scm_assign_mem(adsp->region_assign_phys, - adsp->region_assign_size, - &adsp->region_assign_perms, - &perm, 1); - if (ret < 0) - dev_err(adsp->dev, "unassign memory failed\n"); + ret =3D qcom_scm_assign_mem(adsp->region_assign_phys[offset], + adsp->region_assign_size[offset], + &adsp->region_assign_owners[offset], + &perm, 1); + if (ret < 0) + dev_err(adsp->dev, "unassign memory %d failed\n", offset); + } } =20 static int adsp_probe(struct platform_device *pdev) @@ -696,6 +723,9 @@ static int adsp_probe(struct platform_device *pdev) adsp->info_name =3D desc->sysmon_name; adsp->decrypt_shutdown =3D desc->decrypt_shutdown; adsp->region_assign_idx =3D desc->region_assign_idx; + adsp->region_assign_count =3D min_t(int, MAX_ASSIGN_COUNT, desc->region_a= ssign_count); + adsp->region_assign_vmid =3D desc->region_assign_vmid; + adsp->region_assign_shared =3D desc->region_assign_shared; if (dtb_fw_name) { adsp->dtb_firmware_name =3D dtb_fw_name; adsp->dtb_pas_id =3D desc->dtb_pas_id; @@ -1163,6 +1193,8 @@ static const struct adsp_data sm8550_mpss_resource = =3D { .sysmon_name =3D "modem", .ssctl_id =3D 0x12, .region_assign_idx =3D 2, + .region_assign_count =3D 1, + .region_assign_vmid =3D QCOM_SCM_VMID_MSS_MSA, }; =20 static const struct adsp_data sc7280_wpss_resource =3D { --=20 2.34.1 From nobody Sat Dec 27 16:57:11 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C29114273 for ; Mon, 18 Dec 2023 10:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="L45Kmsk6" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-40c31f18274so34800305e9.0 for ; Mon, 18 Dec 2023 02:28:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1702895296; x=1703500096; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=zMHQ7FxowXR5FFIdGfBk5jzb/m9p5t8DcpQDDoewRFI=; b=L45Kmsk6go84ASzMYFtO/B1ZGpOYaRres4/vkled7tk+2hLJ2bhUpe6lgfzSK78QXo Hion2y6FHravOj9bhjdlEVwcBNemn+rVj73MfYrow+bWotHY4B/lFjyJmMx7XK5hiWub b3ODzQ8kz1kelcJHzgMX9WFE5gUb6C4XjHXePslCwm5Mp9uUOgB9Mel+vrrLCeKu1W39 SyAdIxbDxxVBB0SZ0Pta4DojovSmgqo6bQ2l+gVG6eSDixzPh4AZFsFmNeve/H068u+1 pdI4gtyOn5f9o+yU5VxVaFZAATo7qSwYR6mhyKn61VaX0DpEWPwZzHZGee0L7vZMVsw8 C70g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702895296; x=1703500096; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zMHQ7FxowXR5FFIdGfBk5jzb/m9p5t8DcpQDDoewRFI=; b=KRyep09lcZPG6npN93DuyoXxzQH5SH02ZhFh/ipIAgPsMQeQEcxQjyA00jBEAA9yXG I6Nhk2U18PiQSuDfE/yKvghhHtF1xD805UWaU63XT+ITo6rqQcSkA1DNdx9cCVxoKRV4 2dEIe2ZUGSApco7iL8UA7/2slo5cuPXpTxJlNTzsYAZB5tKezqnmL6StjgGn3wzPBmQK jdw9tjUYF76JYvz7CENUk1czU20a4cpayuyfVwLDd2eaGbMaOlTuOR/8obcBDc0WLlQ4 Udl/0GocGyz5n9v4dvjtRdHeoPvy2wq1bZf9ylrxcecIqzaZuin4ghCNYVsYLlh3cAAd 0BXQ== X-Gm-Message-State: AOJu0YwXM3llNtk04jROPHWf7+aSx688hNbAk/gZ3il72UMNTNHNPPIY 6BNU0Mw5Go17zhQ7RgijCbo0jA== X-Google-Smtp-Source: AGHT+IFNqdVjTsVfqg55j2HNpFNzKNlJ2ojJ/0gzSRJsrU1bgBZJvUCsm0dU6AGb0FSUTSXUYerbtQ== X-Received: by 2002:a05:600c:30d2:b0:40c:4378:f111 with SMTP id h18-20020a05600c30d200b0040c4378f111mr6666736wmn.80.1702895296475; Mon, 18 Dec 2023 02:28:16 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ay35-20020a05600c1e2300b0040b2b38a1fasm41857967wmb.4.2023.12.18.02.28.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 02:28:16 -0800 (PST) From: Neil Armstrong Date: Mon, 18 Dec 2023 11:28:11 +0100 Subject: [PATCH v6 3/3] remoteproc: qcom: pas: Add SM8650 remoteproc support 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: <20231218-topic-sm8650-upstream-remoteproc-v6-3-3d16b37f154b@linaro.org> References: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> In-Reply-To: <20231218-topic-sm8650-upstream-remoteproc-v6-0-3d16b37f154b@linaro.org> To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong , Dmitry Baryshkov X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=2548; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=dRIOpHbtn+6YYLWqsr39smtxV2/mprbkVvuZ9tMTQvg=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlgB67IsYHxNVpjconBvtj59V1HQ9zeRFPORhCOYk2 phvMO3yJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZYAeuwAKCRB33NvayMhJ0f9nD/ 93SMhaFuOPVVU1Er3kqOX598KiaKIl32niAIr2osSGkIxuxenuZvX24Tcn9PztF48p8U6ufxy/O2+0 +wcC+WtpkpEsjOSgrRBFLQejJwU2ubRcX1IWRaTYsMpb3wY0STsjgAZGkxoZL9ddQlGD1Jyf1011Sx 68R2ht4e3csATJtSqje0XwoItD1dJlLMzzHOvbh3qEZAcJpDpvV8mfE+1E4d7f1x9un9tl5Bq8MNRE jfMmAh788ZSbYVGu5InJnXVoSM4KRWNamYQtD7Qj93HNTqnxGHNcT1ejCiJSvYp9RxfWloazROERD5 yp3vTin8wWCqtpirSAMbqJGdr7yNz7iFUjMAkdYz4QCZLBtXkznQ8mLYT522yQWHlmYLEH67dcujwr SRfeGb7qWBZXWalL7jHbxNT8MjE0uHRso9+9Vfd6FVss9alvX+1esxTnGB1VZaC1XIgZuDmigNaW6Z 85jCws4ah3yUmuBvRLMZy/zoStmMo/JHF1+Fv3r6vNeC/OAJ0pT6GWfq/6TC9eykVZVI7hXc2FdI0h RQaM3dFYk+J+glMhDoVvLRSDZZ4iGDwLL4iz6BsJ1ZlP94E4ET9262Quof01Em1tVT0JaYuURNAk/5 c1eKxDQ9DsWeF2NgIQtJwQyxipomq8tvG0UGlAF/CMlJU0f6nByYWwHytSNA== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Add DSP Peripheral Authentication Service support for the SM8650 platform. Reviewed-by: Dmitry Baryshkov Signed-off-by: Neil Armstrong --- drivers/remoteproc/qcom_q6v5_pas.c | 50 ++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 50 insertions(+) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index e90783fd1129..f7967a25ecdb 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1213,6 +1213,53 @@ static const struct adsp_data sc7280_wpss_resource = =3D { .ssctl_id =3D 0x19, }; =20 +static const struct adsp_data sm8650_cdsp_resource =3D { + .crash_reason_smem =3D 601, + .firmware_name =3D "cdsp.mdt", + .dtb_firmware_name =3D "cdsp_dtb.mdt", + .pas_id =3D 18, + .dtb_pas_id =3D 0x25, + .minidump_id =3D 7, + .auto_boot =3D true, + .proxy_pd_names =3D (char*[]){ + "cx", + "mxc", + "nsp", + NULL + }, + .load_state =3D "cdsp", + .ssr_name =3D "cdsp", + .sysmon_name =3D "cdsp", + .ssctl_id =3D 0x17, + .region_assign_idx =3D 2, + .region_assign_count =3D 1, + .region_assign_shared =3D true, + .region_assign_vmid =3D QCOM_SCM_VMID_CDSP, +}; + +static const struct adsp_data sm8650_mpss_resource =3D { + .crash_reason_smem =3D 421, + .firmware_name =3D "modem.mdt", + .dtb_firmware_name =3D "modem_dtb.mdt", + .pas_id =3D 4, + .dtb_pas_id =3D 0x26, + .minidump_id =3D 3, + .auto_boot =3D false, + .decrypt_shutdown =3D true, + .proxy_pd_names =3D (char*[]){ + "cx", + "mss", + NULL + }, + .load_state =3D "modem", + .ssr_name =3D "mpss", + .sysmon_name =3D "modem", + .ssctl_id =3D 0x12, + .region_assign_idx =3D 2, + .region_assign_count =3D 2, + .region_assign_vmid =3D QCOM_SCM_VMID_MSS_MSA, +}; + static const struct of_device_id adsp_of_match[] =3D { { .compatible =3D "qcom,msm8226-adsp-pil", .data =3D &adsp_resource_init}, { .compatible =3D "qcom,msm8953-adsp-pil", .data =3D &msm8996_adsp_resour= ce}, @@ -1268,6 +1315,9 @@ static const struct of_device_id adsp_of_match[] =3D { { .compatible =3D "qcom,sm8550-adsp-pas", .data =3D &sm8550_adsp_resource= }, { .compatible =3D "qcom,sm8550-cdsp-pas", .data =3D &sm8550_cdsp_resource= }, { .compatible =3D "qcom,sm8550-mpss-pas", .data =3D &sm8550_mpss_resource= }, + { .compatible =3D "qcom,sm8650-adsp-pas", .data =3D &sm8550_adsp_resource= }, + { .compatible =3D "qcom,sm8650-cdsp-pas", .data =3D &sm8650_cdsp_resource= }, + { .compatible =3D "qcom,sm8650-mpss-pas", .data =3D &sm8650_mpss_resource= }, { }, }; MODULE_DEVICE_TABLE(of, adsp_of_match); --=20 2.34.1