Message ID | 20231017092732.19983-1-brgl@bgdev.pl |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp4006881vqb; Tue, 17 Oct 2023 02:28:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEh8btQn8NkoqcUs4TDhRbCHkAQsF5DhMmKklB8dd52mEG5IrbX15wv2MV2kC5HwPB6Vyk7 X-Received: by 2002:a05:6a20:ce9a:b0:16c:b95c:6d38 with SMTP id if26-20020a056a20ce9a00b0016cb95c6d38mr1523747pzb.2.1697534891685; Tue, 17 Oct 2023 02:28:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697534891; cv=none; d=google.com; s=arc-20160816; b=NbcrSI6kYEoEJdutg30fx3DepobdAeUEZV5QajLydUqGU4Uby/wGxKmRXGNG8t4sOF fBZ74F+jTeKl+zWRk0FmMJchJA81JVz6f6QWxU5hyx1LLREzEXv2RffEyvOxVGi0f1S7 yZDJwhirCUob/3EhId5STOPNXmurpkqaRhDUHWfwKwNzHuiu8LpHL2Ii7bDSb6yfV2on LSBNO3BKVTA3yg3EnHJ4690onPEyjGrLHn0JO9vV5O/rst44Kr4yWMle8GOHBOjQ+SdU AcjqkyBYYdPb6HiYU9TYWLO0zeqYiXU0BHnseUiRFdfv5GPVbN5qq21FvlE4TmbQ7Ejr 1fHw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=pS4a4EGcukWNDLRE2YgnhxxLWaSY26SIF3Mm3XN+DRA=; fh=lirm1ccAeXZZB1cIo+N1DqklpgcFmD/vJ7PCWNIL0HU=; b=tk1D+chU5u5WQk5lTRqnE9wC5LpQpQ3frmv3gr8XCkRzJBhnV6/SEBWgqcdBxUjeMQ fmzmcWGKRk22O0ylv1FRHM7McrBGBl8VDyEEURiCHTgHm6PbSOdatpACaRWuc4oYDp8E 66Y9jVajZ6one3p6AopM6ozq/9PO7QPzjEagAszuPu/7SwsR93m2hwsWK//CcOQ8FGlG lRgAlaj5fveY0ahWX9KBTBqcsuTckHylem7KTySz7ggyoAhEkjxDze3cB4Sv7xBNVrSD BSk26MwtAEmN3Ac7SOpqXwl651iU5b37iX09urhrctozEQ6RNmmtPAI3apJIj+TuOxmF ZSIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=otpTBB06; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id a7-20020a170902b58700b001bdc664cd69si1339689pls.153.2023.10.17.02.28.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 02:28:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=otpTBB06; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 9968F801F941; Tue, 17 Oct 2023 02:28:09 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234918AbjJQJ2A (ORCPT <rfc822;hjfbswb@gmail.com> + 19 others); Tue, 17 Oct 2023 05:28:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234911AbjJQJ1r (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 17 Oct 2023 05:27:47 -0400 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 039A4132 for <linux-kernel@vger.kernel.org>; Tue, 17 Oct 2023 02:27:37 -0700 (PDT) Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5079f6efd64so4046260e87.2 for <linux-kernel@vger.kernel.org>; Tue, 17 Oct 2023 02:27:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1697534856; x=1698139656; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pS4a4EGcukWNDLRE2YgnhxxLWaSY26SIF3Mm3XN+DRA=; b=otpTBB06EYnDNVDwJY5GMDU8U1BTq3YaMdZoKoMJAb/NdikHWQTCJzcLHMFM2bfMs4 gqL12zLkpKV0tPtYgabV5mE47fZtqq+wYYsaKfaOyz7WYjthITSMaAzCfaGs3kZIOYeF fZ5xfq4fFqODiZU+VSleSU6hJPvdQYxWw1euVsAQoZRhIn5ZSBfRDvR/sG06a6dUzRU0 hANpl9KpjqslcJTAYdAg1fwVCcB8lmswjC/ml2gKeZEli2rbjPZleFi0YVCg0M4IQ/5L ++sYMPxpENaGnY5/pkjmx9rLhw2dII8oldV2/Ng9mtwWwlt8xgIyVsXe3RTS1SJefLTB 3Wnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697534856; x=1698139656; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pS4a4EGcukWNDLRE2YgnhxxLWaSY26SIF3Mm3XN+DRA=; b=BY37+AIQiP/54yby0j31Z3GBSuH5z21I7Bz3xjPSWPZ85hUo8ziWSYEhcymDIYxg2w NXgt85Tcf9TpHVUv5AChr/8fY8IhBYgZjCH1E5W2pDxttn105RcoQQrJDjckwbe0tmgq Zy8MdzSG17prVkqVnLC15Xa1HyQitQj56WDswfIDjzT2glsZkAf2u4w76pyQ4X0VKMu7 qsdDTE3T4Bqv1hVIr+nv4jXBlwM4gPxlFoXPv7+xJXCjgB2rtXO3ZrrES7bCltH3HHuT tJNpdeSRnvGCJ+z4swpqWB7PNyaBiKcJha050vH6renGG5DJGod7lCQcX3afUH4Or2hg 3y/g== X-Gm-Message-State: AOJu0YxYLTCAp7sBoHTSXS+Uc/yFDCW/DpuluRmaQPjZI/UnClcD1VjF SSvJHDtrTRPo4Wh5bt1oM2fFTQ== X-Received: by 2002:a05:6512:3c82:b0:507:aaa9:b080 with SMTP id h2-20020a0565123c8200b00507aaa9b080mr1671271lfv.33.1697534855976; Tue, 17 Oct 2023 02:27:35 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:334:ac00:f1ee:b000:ce90:ed14]) by smtp.gmail.com with ESMTPSA id j5-20020a05600c1c0500b003fe1c332810sm9460787wms.33.2023.10.17.02.27.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 02:27:35 -0700 (PDT) From: Bartosz Golaszewski <brgl@bgdev.pl> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Elliot Berman <quic_eberman@quicinc.com>, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>, Guru Das Srinagesh <quic_gurus@quicinc.com>, Andrew Halaney <ahalaney@redhat.com>, Maximilian Luz <luzmaximilian@gmail.com>, Alex Elder <elder@linaro.org>, Srini Kandagatla <srinivas.kandagatla@linaro.org> Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@quicinc.com, Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Subject: [PATCH v5 00/15] arm64: qcom: add and enable SHM Bridge support Date: Tue, 17 Oct 2023 11:27:17 +0200 Message-Id: <20231017092732.19983-1-brgl@bgdev.pl> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 morse.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Tue, 17 Oct 2023 02:28:09 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779994346471037018 X-GMAIL-MSGID: 1779994346471037018 |
Series |
arm64: qcom: add and enable SHM Bridge support
|
|
Message
Bartosz Golaszewski
Oct. 17, 2023, 9:27 a.m. UTC
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This is pretty much another full rewrite of the SHM Bridge support
series. After more on- and off-list discussions I think this time it
will be close to the final thing though.
We've established the need for using separate pools for SCM and QSEECOM
as well as the upcoming scminvoke driver.
It's also become clear that in order to be future-proof, the new
allocator must be an abstraction layer of a higher level as the SHM
Bridge will not be the only memory protection mechanism that we'll see
upstream. Hence the rename to TrustZone Memory rather than SCM Memory
allocator.
Also to that end: the new allocator is its own module now and provides a
Kconfig choice menu for selecting the mode of operation (currently
default and SHM Bridge).
Due to a high divergence from v2, I dropped all tags except for
patch 1/15 which didn't change.
Tested on sm8550 and sa8775p with the Inline Crypto Engine and
remoteproc.
v4 -> v5:
- fix the return value from qcom_tzmem_init() if SHM Bridge is not supported
- remove a comment that's no longer useful
- collect tags
v3 -> v4:
- include linux/sizes.h for SZ_X macros
- use dedicated RCU APIs to dereference radix tree slots
- fix kerneldocs
- fix the comment in patch 14/15: it's the hypervisor, not the TrustZone
that creates the SHM bridge
v2 -> v3:
- restore pool management and use separate pools for different users
- don't use the new allocator in qcom_scm_pas_init_image() as the
TrustZone will create an SHM bridge for us here
- rewrite the entire series again for most part
v1 -> v2:
- too many changes to list, it's a complete rewrite as explained above
Bartosz Golaszewski (15):
firmware: qcom: move Qualcomm code into its own directory
firmware: qcom: scm: add a missing forward declaration for struct
device
firmware: qcom: scm: remove unneeded 'extern' specifiers
firmware: qcom: add a dedicated TrustZone buffer allocator
firmware: qcom: scm: enable the TZ mem allocator
firmware: qcom: scm: smc: switch to using the SCM allocator
firmware: qcom: scm: make qcom_scm_assign_mem() use the TZ allocator
firmware: qcom: scm: make qcom_scm_ice_set_key() use the TZ allocator
firmware: qcom: scm: make qcom_scm_lmh_dcvsh() use the TZ allocator
firmware: qcom: scm: make qcom_scm_qseecom_app_get_id() use the TZ
allocator
firmware: qcom: qseecom: convert to using the TZ allocator
firmware: qcom: scm: add support for SHM bridge operations
firmware: qcom: tzmem: enable SHM Bridge support
firmware: qcom: scm: clarify the comment in qcom_scm_pas_init_image()
arm64: defconfig: enable SHM Bridge support for the TZ memory
allocator
MAINTAINERS | 4 +-
arch/arm64/configs/defconfig | 1 +
drivers/firmware/Kconfig | 48 +--
drivers/firmware/Makefile | 5 +-
drivers/firmware/qcom/Kconfig | 86 +++++
drivers/firmware/qcom/Makefile | 10 +
drivers/firmware/{ => qcom}/qcom_qseecom.c | 0
.../{ => qcom}/qcom_qseecom_uefisecapp.c | 261 +++++--------
drivers/firmware/{ => qcom}/qcom_scm-legacy.c | 0
drivers/firmware/{ => qcom}/qcom_scm-smc.c | 30 +-
drivers/firmware/{ => qcom}/qcom_scm.c | 179 +++++----
drivers/firmware/{ => qcom}/qcom_scm.h | 21 +-
drivers/firmware/qcom/qcom_tzmem.c | 365 ++++++++++++++++++
drivers/firmware/qcom/qcom_tzmem.h | 13 +
include/linux/firmware/qcom/qcom_qseecom.h | 4 +-
include/linux/firmware/qcom/qcom_scm.h | 6 +
include/linux/firmware/qcom/qcom_tzmem.h | 28 ++
17 files changed, 746 insertions(+), 315 deletions(-)
create mode 100644 drivers/firmware/qcom/Kconfig
create mode 100644 drivers/firmware/qcom/Makefile
rename drivers/firmware/{ => qcom}/qcom_qseecom.c (100%)
rename drivers/firmware/{ => qcom}/qcom_qseecom_uefisecapp.c (84%)
rename drivers/firmware/{ => qcom}/qcom_scm-legacy.c (100%)
rename drivers/firmware/{ => qcom}/qcom_scm-smc.c (90%)
rename drivers/firmware/{ => qcom}/qcom_scm.c (93%)
rename drivers/firmware/{ => qcom}/qcom_scm.h (88%)
create mode 100644 drivers/firmware/qcom/qcom_tzmem.c
create mode 100644 drivers/firmware/qcom/qcom_tzmem.h
create mode 100644 include/linux/firmware/qcom/qcom_tzmem.h
Comments
On Tue, 17 Oct 2023 11:27:17 +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > This is pretty much another full rewrite of the SHM Bridge support > series. After more on- and off-list discussions I think this time it > will be close to the final thing though. > > We've established the need for using separate pools for SCM and QSEECOM > as well as the upcoming scminvoke driver. > > [...] Applied, thanks! [01/15] firmware: qcom: move Qualcomm code into its own directory commit: bdac188ec3c71800dd8419620224ee74ef37732a [02/15] firmware: qcom: scm: add a missing forward declaration for struct device commit: 3294d01f7a5ddacb796d7f7bf31eb100a8f6d0e0 [03/15] firmware: qcom: scm: remove unneeded 'extern' specifiers commit: d79a27ea8e35a2dfc02096d2937267912bcca022 Best regards,