From patchwork Sat Mar 25 13:44:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dylan Van Assche X-Patchwork-Id: 74919 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp423207vqo; Sat, 25 Mar 2023 06:59:29 -0700 (PDT) X-Google-Smtp-Source: AKy350aN8/+LhRunfMd05AmQ6KdInNJKJBOUN932cUFOelkOeKWY4IWtGpz9iPkMuR6fZfdOHatG X-Received: by 2002:aa7:c954:0:b0:501:daae:80ce with SMTP id h20-20020aa7c954000000b00501daae80cemr5704149edt.12.1679752769202; Sat, 25 Mar 2023 06:59:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679752769; cv=none; d=google.com; s=arc-20160816; b=YzOGYgWk9RO5VMqgVtpk/JcCNQjcqQ25Rg1zQFQUEQfFFU0Au2wnR0LwMrSWUdramv JDHGk/xwmfC8M4YH9CZo+5dokNJxofC0qNaVr2U/RBkHUVHRbyBQ8MtYfH4efskxPR7h mN9+8ZkdVianBY9DxuQfjQlIQmZI5PO+4xfvsEPGYbmrpHaYcWiEkB3XrVE413bcHCPq LrO5PAcZEdtun1xPrCGxVWEt/58yM51JQQj/ro2LjbuU+bqkthSZhamfcOwAgpYaXNFi J4PSSLWD5tYmZJbFOnpt4IEN0rgReIr0njyS/3Cq4g+a+SaF/0/xvJyPK3g3SSvBQFvG oHWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=egp86lPSAVRoHmUI43dTRCeOVXvgb3RGUlpfI0Vk4PA=; b=Tim26OjMVbnjlvGYIixIzBbAwtG7Bi8g3YuMLKcwZ8/yXiZKOsTAbFztW5sJcRLPi9 Y3q9ZTOzug9Lc362yAW9DnMyr5WV2/GtLZ5MEMX0I8faqrO3O2vVIl+PDpeC9yS8u4j3 HRDoy06mFhlD3l2Ilu6zzst2g8SKtU27Soyvl55Zd+pAiI/UdXnT+rNGKvBA/OCwIB+e 6fukJxMU1u0OUs1wl2XzfUE+VRdEjpQBFEMJVufOW3oAVeBiHhrEvJjyqRTrVcbnUbBr Knqa+nlfjgmulSYkYgGVNAAAAqvBleh9DcbHQRHMS8tJjzJLRIIdioH3AqrpJa7lSS0J rRMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@dylanvanassche.be header.s=MBO0001 header.b=bRbRi8Gm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=dylanvanassche.be Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pw9-20020a17090720a900b0092bc0619e06si23202110ejb.619.2023.03.25.06.59.06; Sat, 25 Mar 2023 06:59:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@dylanvanassche.be header.s=MBO0001 header.b=bRbRi8Gm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=dylanvanassche.be Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231928AbjCYNoe (ORCPT + 99 others); Sat, 25 Mar 2023 09:44:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbjCYNoc (ORCPT ); Sat, 25 Mar 2023 09:44:32 -0400 Received: from mout-p-202.mailbox.org (mout-p-202.mailbox.org [IPv6:2001:67c:2050:0:465::202]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E23AA113C4; Sat, 25 Mar 2023 06:44:30 -0700 (PDT) Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4PkL0W40KBz9sZv; Sat, 25 Mar 2023 14:44:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dylanvanassche.be; s=MBO0001; t=1679751867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=egp86lPSAVRoHmUI43dTRCeOVXvgb3RGUlpfI0Vk4PA=; b=bRbRi8GmlCcub2pA68xfLa+vh5b+s+MRzOsU1UX0hkaBml3By0iR4T5sexKIdmrh9OtZ8+ enyQVMYOgMy9kHeX7N9v4qJO58Ms8wart++vVDf1O+0IP1A27dOmTq30zlnNesObAyio7a IepYHY+w4PR0UGnoLF6K0DvhUgfcce94GeErVd3Vz45EsWyiex+CL1QNarAD9LUl/4JdXG yJ0L9EmLngPJk3FGnz8EA0Q8UwdZ5XgohTszdS+ZbdSWU0mxziVikORsnJOFDUPwCO/vZI hC2Fk+mFVG8KV1jY8LNfOkbZmvAeTTvw+PaK3DtFzK4U/YZ/Rg23jxqyn236Xw== From: Dylan Van Assche To: Srinivas Kandagatla , Amol Maheshwari , Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski Cc: Konrad Dybcio , Arnd Bergmann , Greg Kroah-Hartman , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Dylan Van Assche Subject: [PATCH 1/2] dt-bindings: misc: qcom,fastrpc: add qcom,assign-all-memory property Date: Sat, 25 Mar 2023 14:44:09 +0100 Message-Id: <20230325134410.21092-2-me@dylanvanassche.be> In-Reply-To: <20230325134410.21092-1-me@dylanvanassche.be> References: <20230325134410.21092-1-me@dylanvanassche.be> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4PkL0W40KBz9sZv X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761348439941555836?= X-GMAIL-MSGID: =?utf-8?q?1761348439941555836?= Document the added qcom,assign-all-memory in devicetree bindings. Signed-off-by: Dylan Van Assche --- Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml b/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml index 1ab9588cdd89..fa5b00534b30 100644 --- a/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml +++ b/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml @@ -57,6 +57,12 @@ properties: Virtual machine IDs for remote processor. $ref: "/schemas/types.yaml#/definitions/uint32-array" + qcom,assign-all-mem: + description: + Assign memory to all Virtual machines defined by qcom,vmids. + type: boolean + + "#address-cells": const: 1 From patchwork Sat Mar 25 13:44:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dylan Van Assche X-Patchwork-Id: 74912 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp420231vqo; Sat, 25 Mar 2023 06:52:27 -0700 (PDT) X-Google-Smtp-Source: AKy350bvu1dQeZemgqd3x33PvlMqf9afhflEHcIfXiJKWek94HEpNmgzZK/L4U3OlsWPB/grXqi4 X-Received: by 2002:aa7:c84a:0:b0:502:26b7:8311 with SMTP id g10-20020aa7c84a000000b0050226b78311mr3019280edt.17.1679752347252; Sat, 25 Mar 2023 06:52:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679752347; cv=none; d=google.com; s=arc-20160816; b=JyMkklfV942wXIsCduc8N3QiVvSw05SAnBxfX4g8T7TbXplb/c/vkEWDwFDgfZ6/Ks cI87DCJLRl51ZtvLPT2TsXBFP7f9tcwN+mP4iPwUT1KbrAqy9t899V2YoTVWHxu2TPmc qxfxdLHRk9hLUJkves/qD37VFYl39VE12G867yy+JvnE/6KAgfOl2t02Lgr0zfrOJc1x VCtaGKr+5R5mvGKhKK0gEe+Q4IbrwBRG+Pesoz+YhvtSKt8knp1iYlzjzsO+f6K5On6o tMGcb+jookL4ECwRQTyv5IVtNKsAB9HPfnh8Go08DzPOrDw+XKmd2pgVjBWUAYK8ibK0 0Q5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1sIg4+FYFSnYc3mW7AmwNzvgOLT4u1cXGrJ6xp9wOhE=; b=VYMeyQ6WmXgCTdmOnE8kTldMRF7DERT0/BMhc8/uMT4qRavra4VCspUzzjLM//k/OK BWjgHC71bYArgrzBtl6PVHTqUxcyDTpY+EjCSjG1RqMrynHXQIFM4EdO0EwD3dZESZc/ DdjTy9OoPwPOsg4IUp/o6oaATWww8ZqS8i47b2P8G1lKuqj6PHzjpC4diQWvaD4zb4DF XndPBvKpcIzE0aPCCCwA9p/JPI83H3VWHAwMfuy8H9ghuPOpXRSjvgvdRyv9J2fmTwSD s0sdmWx+MsWTNOrrOiFnoX4tFdiyPwP1FewD1vQdwxS6NPApQTdIXJPZMOKxO3UBT3a3 XxkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@dylanvanassche.be header.s=MBO0001 header.b=zmItbdzp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=dylanvanassche.be Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dy24-20020a05640231f800b004acb4f52ecesi17022367edb.156.2023.03.25.06.52.04; Sat, 25 Mar 2023 06:52:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@dylanvanassche.be header.s=MBO0001 header.b=zmItbdzp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=dylanvanassche.be Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231392AbjCYNoi (ORCPT + 99 others); Sat, 25 Mar 2023 09:44:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbjCYNof (ORCPT ); Sat, 25 Mar 2023 09:44:35 -0400 Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [IPv6:2001:67c:2050:0:465::201]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6096812859; Sat, 25 Mar 2023 06:44:34 -0700 (PDT) Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4PkL0Z1zpbz9sZ5; Sat, 25 Mar 2023 14:44:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dylanvanassche.be; s=MBO0001; t=1679751870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1sIg4+FYFSnYc3mW7AmwNzvgOLT4u1cXGrJ6xp9wOhE=; b=zmItbdzpCmB5D3oVIkJ0NewbyApwH9z0bpGgeV7q0rUsjfFCZ/xSAanvCcziJQ9Jbc/z5U dKJHJLA2MY+3dDJ4iROyviyqxtRS6q0btQNJq1wbWagz6Pveozyx8audQ6Iz62LQm/vbSc C36RtQrEqN57L3VgsO9byNTWbNIcsN2oQlH6PZswPVbE0WdFVxvj1PSO3SkQCpDAYdAmPf uAq0OML11fSwr/Yex6Yj5jnCeTAj1pXOV+LdYWlfYR5MN27avQLLZxyFz64XZ+oP9Bib8k yw7VbCbQDyYZHnq8F9Y2dUH2SCOtvsyU7dxiNavHjgzB3kJBJJF+Jv6jVmSYPw== From: Dylan Van Assche To: Srinivas Kandagatla , Amol Maheshwari , Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski Cc: Konrad Dybcio , Arnd Bergmann , Greg Kroah-Hartman , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Dylan Van Assche Subject: [PATCH 2/2] misc: fastrpc: support complete DMA pool access to the DSP Date: Sat, 25 Mar 2023 14:44:10 +0100 Message-Id: <20230325134410.21092-3-me@dylanvanassche.be> In-Reply-To: <20230325134410.21092-1-me@dylanvanassche.be> References: <20230325134410.21092-1-me@dylanvanassche.be> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4PkL0Z1zpbz9sZ5 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761347997443513470?= X-GMAIL-MSGID: =?utf-8?q?1761347997443513470?= To support FastRPC Context Banks which aren't mapped via the SMMU, make the whole reserved memory region available to the DSP to allow access to coherent buffers. This is performed by assigning the memory to the DSP via a hypervisor call to set the correct permissions for the Virtual Machines on the DSP. Only perform this operation when at least one VM is enabled and 'qcom,assign-all-mem' property is present in DTS. Signed-off-by: Dylan Van Assche --- drivers/misc/fastrpc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index f48466960f1b..ecfd0a91113c 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -2230,7 +2230,9 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) struct fastrpc_channel_ctx *data; int i, err, domain_id = -1, vmcount; const char *domain; - bool secure_dsp; + bool secure_dsp, assign_all_mem; + struct device_node *rmem_node; + struct reserved_mem *rmem; unsigned int vmids[FASTRPC_MAX_VMIDS]; err = of_property_read_string(rdev->of_node, "label", &domain); @@ -2265,6 +2267,11 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) if (!data) return -ENOMEM; + assign_all_mem = of_property_read_bool(rdev->of_node, "qcom,assign-all-mem"); + + if (assign_all_mem && !vmcount) + return -EINVAL; + if (vmcount) { data->vmcount = vmcount; data->perms = BIT(QCOM_SCM_VMID_HLOS); @@ -2274,6 +2281,16 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) } } + if (assign_all_mem) { + rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0); + if (rmem_node) { + rmem = of_reserved_mem_lookup(rmem_node); + if (rmem) + qcom_scm_assign_mem(rmem->base, rmem->size, &data->perms, + data->vmperms, data->vmcount); + } + } + secure_dsp = !(of_property_read_bool(rdev->of_node, "qcom,non-secure-domain")); data->secure = secure_dsp;