From nobody Wed Dec 31 19:43:59 2025 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 B347CC00142 for ; Mon, 30 Oct 2023 10:15:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232119AbjJ3KPB (ORCPT ); Mon, 30 Oct 2023 06:15:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232480AbjJ3KOd (ORCPT ); Mon, 30 Oct 2023 06:14:33 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CF6F5B86 for ; Mon, 30 Oct 2023 03:03:38 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-40850b244beso33307025e9.2 for ; Mon, 30 Oct 2023 03:03:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1698660217; x=1699265017; 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=uBEjkFtEoDLXP4jW5j4UkikPWGjNO3wSnuP7dLnI0Wc=; b=JBy4utfi+lkuFj+ksC37VXlNa1hVpO5QBnXPCE6MD4+SSh6KkV4Kl7UiNXQUQm5xoo xeKkAiMegEru36HgY0jrakg54WV3x6RnCwsGvHXN7AotPiX9HEH5u+hrFMEvYuVbVpyM OnCbkLb9bg1Mb2kbX5jLXjex56zBieffQ0NBlpS3yyROxOAdOaghvdUMftd6rEYQma1K P5k4dzbi/z6yPyv8UHuHLXmHaCDCAg+fdnIBAj3ZJW9FDmRxIcWn/+38cEv5go0sMM6e gSJsz3nr7JjLcHVPizNtLkpAxNNv/pvcAt18kb2FHgMC3FcvkT1LS6GgyUVZ+jLwd/YL pCuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698660217; x=1699265017; 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=uBEjkFtEoDLXP4jW5j4UkikPWGjNO3wSnuP7dLnI0Wc=; b=DmlCLe322xaolL2NsVs1DUenLBnekYns4rRyZyGSzN/y9rWW+UGL96VslXLo9N7Fhx MK38QhtZvJjmTgOFFgyq5BwcOlALf47AXDdRK2epjAFEwbnOfpJ8uOXj7c1B9hMDu9po SL1Xqnlj+FKtB3604+jP8eO3Idw4fvN4JQMNrDuCrnYRTFKeW62k/qRaA+ROZ67x1toD U8R4J7wgTRGrUr17A7bIp6aNIdsvP1MQH1Qb+mKrxXZb6sc//zrerxJfjd2/qJX4Z4sZ NU4Vd8lV6tEgC2BFzzL40dt2eWDzN9h+paFdUntaYKbFfyYaPAukb3eeOKdRHGNGnBEi oeXA== X-Gm-Message-State: AOJu0YypchRqk3gKVKooonLVTTnyyuvKZwnG70pn4xiLtWdSk1J59OS8 HhSceX8hVEQWQOY1bvNhDE3/EQ== X-Google-Smtp-Source: AGHT+IHy64T+PoGYYQlUsuvXeeiAf0tknKiASshoaLlDzGF9PnlqZwUBFzxBXt/ytSsEzYhHCfpvCg== X-Received: by 2002:a05:600c:5489:b0:402:f5c4:2e5a with SMTP id iv9-20020a05600c548900b00402f5c42e5amr8417691wmb.37.1698660216615; Mon, 30 Oct 2023 03:03:36 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id p8-20020a05600c358800b0040472ad9a3dsm8776700wmq.14.2023.10.30.03.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 03:03:36 -0700 (PDT) From: Neil Armstrong Date: Mon, 30 Oct 2023 11:03:13 +0100 Subject: [PATCH v2 1/3] dt-bindings: remoteproc: qcom,sm8550-pas: document the SM8650 PAS MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231030-topic-sm8650-upstream-remoteproc-v2-1-609ee572e0a2@linaro.org> References: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@linaro.org> In-Reply-To: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@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 X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3017; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=reEmefJKZGV+uJvNoYw60U/aLAM89Ky7sJqGT1KB8qg=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlP391nsS+vxxMb7MKYMWPKKtkj7UT7Xjmy1yBa4X+ fS1m4SmJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZT9/dQAKCRB33NvayMhJ0QJLEA COC/azx2ass0U5ckn4Hi6Y475flR7DQHXwyAzdgCQOVyqqt+/3hnTJGCuDiDINzb7wYmN/a31yLK61 xo3nA5NRYFWLYKrN/Nvb4hhEvb1i89NvArqFRclVOEZYogl2kVK93MwI09orGpmVcEdAW/phYUsKp6 hKG6DW4B3Qu/8lWT7CRL3L+K+RFRv8VZe3SnmIAeK4S5RCmnwqKXeoTgm4luj9cHh+ArHhh0iWxE4K y6IYHRx+uAix+IXY9kU+JbyWXbahHNNb/5yFnUKQqdWkmcQ+0V7Xvq9AP3451Rs3mAEg1KcMHytigW 8cp+naclHK4mqBQpVQ6mhY6jiFf3GRcv8f/iR1+B2PXZQzsADTuBjEU4NL8/T/4tWgzYrJh69rGd4L BcLyP5FcdnkxGzISo+YTZKUziVQHZvky9ejdjVA+SrMJVQPTS9MM5+VuMRtFvgcbeop4qr2ITck5L6 UDv3zWKgVWGej13QYnSfEXZDFeJ7QVGzSP/TzUysbJXuQYBjiPMLj/QCxAcrvMMiKXYFxt2AE+fbVC y1yqv96YNXxG0Re+vfSlqUUyA/eEbXJg1roigRbBkaeF5mB8DChUMht3UfX8YDaDNE28Lcv+o8xkJT C1FeUGuN5oULxEIOt9zQLsArizPARi0yPVnKTFdnKXfeiyanNTjcWdfPQ9tg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Document the DSP Peripheral Authentication Service on the SM8650 Platform. Signed-off-by: Neil Armstrong Reviewed-by: Krzysztof Kozlowski --- .../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 Wed Dec 31 19:43:59 2025 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 0CE20C4332F for ; Mon, 30 Oct 2023 10:19:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232829AbjJ3KTX (ORCPT ); Mon, 30 Oct 2023 06:19:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232892AbjJ3KSi (ORCPT ); Mon, 30 Oct 2023 06:18:38 -0400 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D85395B95 for ; Mon, 30 Oct 2023 03:03:40 -0700 (PDT) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-408382da7f0so31322825e9.0 for ; Mon, 30 Oct 2023 03:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1698660218; x=1699265018; 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=ssP4KB5jQYMoyjKlHdy1AaYK1DfyUFr3e4RTz1dsus8=; b=ZGRR8Mnz0fweLmmMNEjm3tQyiiZRS0IovK/tz1SRgor5DRM0kFKsZL+7G1aTaqzTan xRudOLeO0MvNL5embfgSpW2rlUrKrBHpehJwsd1GfHKSxQKKe8KBS+F8rBexghJpNhxU eF1+AhqfjEbx8c+S3Ai0zrxzt+oktdcs1F7vyLOp4kkAg2/MQNsZ3j51LGAz7n0HNnx7 rqaDQOCmtTj273O3Kyz6c9qxksqXHgHzXnbdysJXrkDF8oKKyWDKUgxJVEdB8d+aiL6D CJ61nf9OM6vU4XSfKLYGhMNfLwkUdMui5usqDaTvtwKBudIVi9jXKvfXHS3WmyVG3a/c eDxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698660218; x=1699265018; 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=ssP4KB5jQYMoyjKlHdy1AaYK1DfyUFr3e4RTz1dsus8=; b=DffYjLgrv2wcAdgT2SLspe3TNmkSLTxuLZIJRA4T7TFwc8bTGKntwIknSpj0rE435f fz2ndVqNqg8cTRIcASYpF9POPIXbCfTjPAI7Ji9djEDbAjavOzA29m5inml8RKdR3mOD fRsbfV1HQlSAnH6YmXABJkdYBFWNUSpBEOIjBWgJbnsvI2gLegNVB/AX5isWV1FVdXCz LrwlRQ78pOUhAulkVwxqMat49r0f0QgQ8aWG3pOg8TYQc8ZitKQ/xAkWj9RPyvYlqdle SEUeoDHt4MyvV5HUuMHTk9X5Vqq9AxILREImLUnuSx/QaCY/CwLagWcUcp8Ekg0g9RKP UuBQ== X-Gm-Message-State: AOJu0YzyiKgRKRndA2TcKCrc52IazKEU1u2lN02QWKIO53DAPt8zDCZp WWWiwZ5z0EbEH9J0jFx26ileYA== X-Google-Smtp-Source: AGHT+IGU4WGLWFwmmfINDCqcuCN3MipD9JqGNMvyYWk3kt4Gd8D6RntrGPdd34aBqxa6DICnnsJpQA== X-Received: by 2002:a05:600c:5488:b0:401:2ee0:7558 with SMTP id iv8-20020a05600c548800b004012ee07558mr7491764wmb.32.1698660217674; Mon, 30 Oct 2023 03:03:37 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id p8-20020a05600c358800b0040472ad9a3dsm8776700wmq.14.2023.10.30.03.03.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 03:03:37 -0700 (PDT) From: Neil Armstrong Date: Mon, 30 Oct 2023 11:03:14 +0100 Subject: [PATCH v2 2/3] remoteproc: qcom: pas: make region assign more generic MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231030-topic-sm8650-upstream-remoteproc-v2-2-609ee572e0a2@linaro.org> References: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@linaro.org> In-Reply-To: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@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 X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6167; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=i9GgDCC6g7mU5EIa98I5Xi71yOCJg6QFzSORhu8lHB4=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlP391B5JQ3SVWxZ+JqmrRuIDVmqL7qt9tDX1CD0DS 8ej5dAqJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZT9/dQAKCRB33NvayMhJ0SyrD/ 43VvuyHtjG2+8030sfn/NxmEgUB3wb4hy2Y7AKO5ms0D6OEPXthtQN8n7jbDtRI6aRclAl5CigNE60 eb6h+Pt+NLBDsZL/QH48chngz8kCfEfsRkZz+7T5oJqF2pAWf0qy7h8d8K3fhyOemOoeGZ/ywUKJfN TMywfWYZsNcj4kIflyJ32DydzaErEWRtin4Swba0EXs698AzR0qCBGKtF6dj17s20m3W+wn4lara+t Mgd0WGheM5AXZ6CIBN8ioTtGIudtWpChrADsB7KWArP6zwx5oTdXUlLtLC3lnlTxLIEWmc1O3zJKal 4ZNAISEipw003Kk8c//7WXbiRkTohQMN2k4TUzKcVFQ3bVwn9I2UWc2DLZ1ScmyU6Ai88/27sG9NI2 QkmBXfikgnyMMFVhbnlStM3zAhOcqdnHG8xY9PkbS1dgIkCkay5TrSmaXTzybCbVGFPDjXe63ibLqS vi3MpO5CHta3N1hOgq8LZ8m8J250/X6kDFtRs1v4vYf1jpp5CItbkVXPsHdm39zjkMK1iv8jqNnZZZ Pmt8TWeoIIeL2E0lUh3zWqjDWOh7eZYHtzOZ4QSDyEPFFEIwoKEC9Y6ZYpdu5Z0YfVUDjAuDFBXpSV lPl99CHBgkkaCN5gs5oQOJbIgtFR5949Anx6kjfG7FVKm7RY0D3IbpSqdvjw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Signed-off-by: Neil Armstrong --- drivers/remoteproc/qcom_q6v5_pas.c | 102 ++++++++++++++++++++++++---------= ---- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 913a5d2068e8..4829fd26e17d 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_perms[MAX_ASSIGN_COUNT]; =20 struct qcom_rproc_glink glink_subdev; struct qcom_rproc_subdev smd_subdev; @@ -590,37 +598,52 @@ 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]; + unsigned int perm_size =3D 1; struct device_node *node; - int ret; + int offset, 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_perms[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_perms[offset], + perm, perm_size); + if (ret < 0) { + dev_err(adsp->dev, "assign memory %d failed\n", offset); + return ret; + } } =20 return 0; @@ -629,20 +652,22 @@ 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 ret; + int offset, 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_perms[offset], + &perm, 1); + if (ret < 0) + dev_err(adsp->dev, "unassign memory failed\n"); + } } =20 static int adsp_probe(struct platform_device *pdev) @@ -696,6 +721,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 +1191,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 of_device_id adsp_of_match[] =3D { --=20 2.34.1 From nobody Wed Dec 31 19:43:59 2025 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 4DBDAC4332F for ; Mon, 30 Oct 2023 10:14:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232571AbjJ3KOA (ORCPT ); Mon, 30 Oct 2023 06:14:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232617AbjJ3KNt (ORCPT ); Mon, 30 Oct 2023 06:13:49 -0400 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07848173B for ; Mon, 30 Oct 2023 03:03:41 -0700 (PDT) Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-40859c464daso33920115e9.1 for ; Mon, 30 Oct 2023 03:03:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1698660219; x=1699265019; 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=0y2DFM2LPG1teWJjvY3TK3xeJgx1vKnV7mxdqKxnohk=; b=LCmKaMiK1gbNMJWxFNXP7QPsPxIS06qDSr6/eOzKG5BVcntmArQRbTpcyo30Y3Yy1k ABfgFczFJwx3jTFZGNgJEa7hKbv39ASbQ9OotKlBrsdhR4YlnJ9JMJuA+YuhGrwSpHhs 7wGPsmFYr5Z6LJ3aCqNV7hCDQl7r3wMq0RKLjHIKk8VCCM8E656AWaMR4UaIEi/37MAA qi/QCtA0Vqlack1yNp/i+Ba+KqF0sKR+Z7+0SNFjQ3ZKF+sxzeQz4I9IrkqJoEoPpltA 8WYduWOaJI7uJtC4ksCkoaBK0iEgsUIYYWzZks1DR1iGDkZi0naF/iNX8eG8u3N6qJwb ECtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698660219; x=1699265019; 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=0y2DFM2LPG1teWJjvY3TK3xeJgx1vKnV7mxdqKxnohk=; b=e0Y/BmsgpXCKmodaAjGMwdUTHmEan8zkrMbVn/RoDqSA9B41N6YFlvmz905d5ysW9D f5lSj63rSDtCRGrBjpovMEIZsjwc6wZZhsKGbrRGpBclCwA2YentQZ68T83ZdIPrBxTy yRlOozuNIe45RRSktBBQtzd/aQ8LIY0krn/VQLZ+P45jFYFO1G0MmWBOKcxFTjj9dLxN Ezk4oWyPeqbL5s6sK/bn31tPN57NVkW/2haFMGsFG7SU2pPND6IyCYMNNBuANumE86E1 KD2JvcjlhCqoOMbKL+GfTJpS8ZayObuDLhEwqv5rbpS+Q+AVMvgKaQ3dZIH+w6BFFwHR smrQ== X-Gm-Message-State: AOJu0YxxE8X2djCPSTxddW4U7uOsGXylwep7KYB7jbiHhJP+91V8NshL Y72ldknrf8C+brAKStCfL7O0JA== X-Google-Smtp-Source: AGHT+IHNBxn3cXELrnJX/E2SxZW5Wl5MWkraZKMmV4K8N0LwWPmPM9LYKjpQUbaZXuJpAe61yveeQg== X-Received: by 2002:a05:600c:468e:b0:3fe:e7b2:c97f with SMTP id p14-20020a05600c468e00b003fee7b2c97fmr7183406wmo.36.1698660218664; Mon, 30 Oct 2023 03:03:38 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id p8-20020a05600c358800b0040472ad9a3dsm8776700wmq.14.2023.10.30.03.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 03:03:38 -0700 (PDT) From: Neil Armstrong Date: Mon, 30 Oct 2023 11:03:15 +0100 Subject: [PATCH v2 3/3] remoteproc: qcom: pas: Add SM8650 remoteproc support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231030-topic-sm8650-upstream-remoteproc-v2-3-609ee572e0a2@linaro.org> References: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@linaro.org> In-Reply-To: <20231030-topic-sm8650-upstream-remoteproc-v2-0-609ee572e0a2@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.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2575; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=TkT4wt2310yY48l8xXkR00+vzE+Z0XLgSG9XiuLyvd8=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBlP3926H6Bkp0+nf/AY+ehqBs9OFnmvuUcSNhbC5Wg DgZCfHWJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZT9/dgAKCRB33NvayMhJ0e6gD/ oC7S01eR3M+XOzwocTiaklsW1VDVZEGPr2KQSk0btLyxh555v3hDGDWiLpmosZgQSCgxWul4PWhn/X oEbMpV44ndrQgaZbtYZNXwvF6JaINpDTxyI/U8Ftm+Re+mFTXfpw46KZOzJXH1eTT4zC4DpL5Q9OjZ Otmu1QTSxJHG9BvbbrmkCiVQ00r5bXlSs4W1euAAQjvK1RrMFpo/Fa7sKRaBzV8XFsuFp1UnAyIXKM m3s0dsWbMy/IbzVaKigmH2ayWFZ6RJdtQtFycfpRWFqkDRdg0j2Q5bHXv937HQHjdOk1RTtm9MvWTz 1YmVipyvX5LqhjtNlPi33FgBhQ4cCNLUe6wAsYbEcYmxEBKgmG7+ydNQeD5OsIY5qPtOz49U+zDO9w tfdPrKfKJikQCG5dw5GlsHfxsSL8ACjSJ7G4slKp4QT6BNh4ynfYZa9V2BVUVGVp9nPnZst3zf1TW9 35gnkAZa0151zHyZst1bRsTst06ulB/qtv9TCmM7hyxmFLofbcexIne5EBMkhPW25/KtNVqGCrA+X0 m3iE7OajbR77RIZmhgmevkL6VnaUaLDLn5vHBE12DH+jo5jTfuCp2IiaxqGdigXVd04ajOxvw/GMMp 2ceqFRqepwQX1xAe2/rrV2/QFLdP7DEvsIXmh3JAmD2+m9u3at/5ig7mXqow== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 4829fd26e17d..c593e6d529b3 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -1195,6 +1195,53 @@ static const struct adsp_data sm8550_mpss_resource = =3D { .region_assign_vmid =3D QCOM_SCM_VMID_MSS_MSA, }; =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}, @@ -1247,6 +1294,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