lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6e189833-b76b-030f-482e-d13e0d6d131a@quicinc.com>
Date:   Mon, 20 Nov 2023 22:35:00 -0800
From:   Prasad Sodagudi <quic_psodagud@...cinc.com>
To:     Bartosz Golaszewski <brgl@...ev.pl>,
        Andy Gross <agross@...nel.org>,
        "Bjorn Andersson" <andersson@...nel.org>,
        Konrad Dybcio <konrad.dybcio@...aro.org>,
        Elliot Berman <quic_eberman@...cinc.com>,
        Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
        Guru Das Srinagesh <quic_gurus@...cinc.com>,
        Andrew Halaney <ahalaney@...hat.com>,
        "Maximilian Luz" <luzmaximilian@...il.com>,
        Alex Elder <elder@...aro.org>,
        "Srini Kandagatla" <srinivas.kandagatla@...aro.org>
CC:     <linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <linux-arm-kernel@...ts.infradead.org>, <kernel@...cinc.com>,
        "Bartosz Golaszewski" <bartosz.golaszewski@...aro.org>
Subject: Re: [RESEND PATCH v5 02/12] firmware: qcom: scm: enable the TZ mem
 allocator


On 11/20/2023 5:21 AM, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
>
> Select the TrustZone memory allocator in Kconfig and create a pool of
> memory shareable with the TrustZone when probing the SCM driver.
>
> This will allow a gradual conversion of all relevant SCM calls to using
> the dedicated allocator.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
> Reviewed-by: Andrew Halaney <ahalaney@...hat.com>
> Tested-by: Andrew Halaney <ahalaney@...hat.com> # sc8280xp-lenovo-thinkpad-x13s
> ---
>   drivers/firmware/qcom/Kconfig    |  1 +
>   drivers/firmware/qcom/qcom_scm.c | 16 ++++++++++++++++
>   2 files changed, 17 insertions(+)
>
> diff --git a/drivers/firmware/qcom/Kconfig b/drivers/firmware/qcom/Kconfig
> index b80269a28224..237da40de832 100644
> --- a/drivers/firmware/qcom/Kconfig
> +++ b/drivers/firmware/qcom/Kconfig
> @@ -7,6 +7,7 @@
>   menu "Qualcomm firmware drivers"
>   
>   config QCOM_SCM
> +	select QCOM_TZMEM
>   	tristate
>   
>   config QCOM_TZMEM
> diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
> index 520de9b5633a..0d4c028be0c1 100644
> --- a/drivers/firmware/qcom/qcom_scm.c
> +++ b/drivers/firmware/qcom/qcom_scm.c
> @@ -8,8 +8,10 @@
>   #include <linux/completion.h>
>   #include <linux/cpumask.h>
>   #include <linux/dma-mapping.h>
> +#include <linux/err.h>
>   #include <linux/export.h>
>   #include <linux/firmware/qcom/qcom_scm.h>
> +#include <linux/firmware/qcom/qcom_tzmem.h>
>   #include <linux/init.h>
>   #include <linux/interconnect.h>
>   #include <linux/interrupt.h>
> @@ -20,9 +22,11 @@
>   #include <linux/of_platform.h>
>   #include <linux/platform_device.h>
>   #include <linux/reset-controller.h>
> +#include <linux/sizes.h>
>   #include <linux/types.h>
>   
>   #include "qcom_scm.h"
> +#include "qcom_tzmem.h"
>   
>   static bool download_mode = IS_ENABLED(CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT);
>   module_param(download_mode, bool, 0);
> @@ -41,6 +45,8 @@ struct qcom_scm {
>   	int scm_vote_count;
>   
>   	u64 dload_mode_addr;
> +
> +	struct qcom_tzmem_pool *mempool;
>   };
>   
>   struct qcom_scm_current_perm_info {
> @@ -1887,6 +1893,16 @@ static int qcom_scm_probe(struct platform_device *pdev)
>   	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled"))
>   		qcom_scm_disable_sdi();
>   
> +	ret = qcom_tzmem_enable(__scm->dev);
> +	if (ret)
> +		return dev_err_probe(__scm->dev, ret,
> +				     "Failed to enable the TrustZone memory allocator\n");

Based on my knowledge shmbridge is supported from sm8250 SoC in the 
firmware.

sdm845 and couple of other targets may not have support shmbridge 
support and probe will be fail for these targets right?

> +
> +	__scm->mempool = devm_qcom_tzmem_pool_new(__scm->dev, SZ_256K);
> +	if (IS_ERR(__scm->mempool))
> +		return dev_err_probe(__scm->dev, PTR_ERR(__scm->mempool),
> +				     "Failed to create the SCM memory pool\n");
> +
>   	/*
>   	 * Initialize the QSEECOM interface.
>   	 *

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ