All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sumit Garg <sumit.garg@kernel.org>
To: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org,
	linux-media@vger.kernel.org, netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org, ath12k@lists.infradead.org,
	linux-remoteproc@vger.kernel.org, andersson@kernel.org,
	konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, robin.clark@oss.qualcomm.com,
	sean@poorly.run, akhilpo@oss.qualcomm.com, lumag@kernel.org,
	abhinav.kumar@linux.dev, jesszhan0024@gmail.com,
	marijn.suijten@somainline.org, airlied@gmail.com,
	simona@ffwll.ch, vikash.garodia@oss.qualcomm.com,
	dikshita.agarwal@oss.qualcomm.com, bod@kernel.org,
	mchehab@kernel.org, elder@kernel.org, andrew+netdev@lunn.ch,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, jjohnson@kernel.org,
	mathieu.poirier@linaro.org, trilokkumar.soni@oss.qualcomm.com,
	pavan.kondeti@oss.qualcomm.com, jorge.ramirez@oss.qualcomm.com,
	tonyh@qti.qualcomm.com, vignesh.viswanathan@oss.qualcomm.com,
	srinivas.kandagatla@oss.qualcomm.com,
	amirreza.zarrabi@oss.qualcomm.com, jens.wiklander@linaro.org,
	op-tee@lists.trustedfirmware.org, apurupa@qti.qualcomm.com,
	skare@qti.qualcomm.com, linux-kernel@vger.kernel.org,
	Sumit Garg <sumit.garg@oss.qualcomm.com>
Subject: Re: [PATCH v2 02/15] firmware: qcom: Add a generic PAS service
Date: Mon, 23 Mar 2026 18:25:53 +0530	[thread overview]
Message-ID: <acE4WXdiuTd1tjAp@sumit-xelite> (raw)
In-Reply-To: <20260313073121.qb7yq7tcga3sshcr@hu-mojha-hyd.qualcomm.com>

On Fri, Mar 13, 2026 at 01:01:21PM +0530, Mukesh Ojha wrote:
> On Fri, Mar 13, 2026 at 12:54:50PM +0530, Mukesh Ojha wrote:
> > On Thu, Mar 12, 2026 at 11:57:43AM +0530, Sumit Garg wrote:
> > > From: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > > 
> > > Qcom platforms has the legacy of using non-standard SCM calls
> > > splintered over the various kernel drivers. These SCM calls aren't
> > > compliant with the standard SMC calling conventions which is a
> > > prerequisite to enable migration to the FF-A specifications from Arm.
> > > 
> > > OP-TEE as an alternative trusted OS to Qualcomm TEE (QTEE) can't
> > > support these non-standard SCM calls. And even for newer architectures
> > > with S-EL2 and Hafnium support, QTEE won't be able to support SCM
> > 
> >  using S‑EL2 with Hafnium
> > 
> > > calls either with FF-A requirements coming in. And with both OP-TEE
> > > and QTEE drivers well integrated in the TEE subsystem, it makes further
> > > sense to reuse the TEE bus client drivers infrastructure.
> > > 
> > > The added benefit of TEE bus infrastructure is that there is support
> > > for discoverable/enumerable services. With that client drivers don't
> > > have to manually invoke a special SCM call to know the service status.
> > > 
> > > So enable the generic Peripheral Authentication Service (PAS) provided
> > > by the firmware. It acts as the common layer with different TZ
> > > backends plugged in whether it's an SCM implementation or a proper
> > > TEE bus based PAS service implementation.
> > > 
> > > Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > > ---
> > >  drivers/firmware/qcom/Kconfig          |   8 +
> > >  drivers/firmware/qcom/Makefile         |   1 +
> > >  drivers/firmware/qcom/qcom_pas.c       | 298 +++++++++++++++++++++++++
> > >  drivers/firmware/qcom/qcom_pas.h       |  53 +++++
> > >  include/linux/firmware/qcom/qcom_pas.h |  41 ++++
> > >  5 files changed, 401 insertions(+)
> > >  create mode 100644 drivers/firmware/qcom/qcom_pas.c
> > >  create mode 100644 drivers/firmware/qcom/qcom_pas.h
> > >  create mode 100644 include/linux/firmware/qcom/qcom_pas.h
> > > 

<snip>

> > > diff --git a/drivers/firmware/qcom/qcom_pas.c b/drivers/firmware/qcom/qcom_pas.c
> > > new file mode 100644
> > > index 000000000000..beb1bae55546
> > > --- /dev/null
> > > +++ b/drivers/firmware/qcom/qcom_pas.c
> > > @@ -0,0 +1,298 @@
> > > +// SPDX-License-Identifier: GPL-2.0
> > > +/*
> > > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > > + */
> > > +
> > > +#include <linux/device/devres.h>
> > > +#include <linux/firmware/qcom/qcom_pas.h>
> > > +#include <linux/kernel.h>
> > > +#include <linux/module.h>
> > > +
> > > +#include "qcom_pas.h"
> > > +
> > > +struct qcom_pas_ops *ops_ptr;
> > 
> > Should this be static ?
> > 
> > > +
> > > +/**
> > > + * devm_qcom_pas_context_alloc() - Allocate peripheral authentication service
> > > + *				   context for a given peripheral
> > > + *
> > > + * PAS context is device-resource managed, so the caller does not need
> > > + * to worry about freeing the context memory.
> > > + *
> > > + * @dev:	  PAS firmware device
> > > + * @pas_id:	  peripheral authentication service id
> > > + * @mem_phys:	  Subsystem reserve memory start address
> > > + * @mem_size:	  Subsystem reserve memory size
> > > + *
> > > + * Return: The new PAS context, or ERR_PTR() on failure.
> > > + */
> > > +struct qcom_pas_context *devm_qcom_pas_context_alloc(struct device *dev,
> > > +						     u32 pas_id,
> > > +						     phys_addr_t mem_phys,
> > > +						     size_t mem_size)
> > > +{
> > > +	struct qcom_pas_context *ctx;
> > > +
> > > +	ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
> > > +	if (!ctx)
> > > +		return ERR_PTR(-ENOMEM);
> > > +
> > > +	ctx->dev = dev;
> > > +	ctx->pas_id = pas_id;
> > > +	ctx->mem_phys = mem_phys;
> > > +	ctx->mem_size = mem_size;
> > > +
> > > +	return ctx;
> > > +}
> > > +EXPORT_SYMBOL_GPL(devm_qcom_pas_context_alloc);
> > > +
> > > +/**
> > > + * qcom_pas_init_image() - Initialize peripheral authentication service state
> > > + *			   machine for a given peripheral, using the metadata
> > > + * @pas_id:	peripheral authentication service id
> > > + * @metadata:	pointer to memory containing ELF header, program header table
> > > + *		and optional blob of data used for authenticating the metadata
> > > + *		and the rest of the firmware
> > > + * @size:	size of the metadata
> > > + * @ctx:	optional pas context
> > > + *
> > > + * Return: 0 on success.
> > > + *
> > > + * Upon successful return, the PAS metadata context (@ctx) will be used to
> > > + * track the metadata allocation, this needs to be released by invoking
> > > + * qcom_pas_metadata_release() by the caller.
> > > + */
> > > +int qcom_pas_init_image(u32 pas_id, const void *metadata, size_t size,
> > > +			struct qcom_pas_context *ctx)
> 
> please, align this with previous line '(' for all the functions.
> 

The alignment is fine here, not sure why the plain text replies show
them as not aligned.

-Sumit


  reply	other threads:[~2026-03-23 12:56 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-12  6:27 [PATCH v2 00/15] firmware: qcom: Add OP-TEE PAS service support Sumit Garg
2026-03-12  6:27 ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 01/15] arm64: dts: qcom: kodiak: Add EL2 overlay Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-13  6:04   ` Mukesh Ojha
2026-03-23 12:35     ` Sumit Garg
2026-03-12  6:27 ` [PATCH v2 02/15] firmware: qcom: Add a generic PAS service Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-13  7:24   ` Mukesh Ojha
2026-03-13  7:31     ` Mukesh Ojha
2026-03-23 12:55       ` Sumit Garg [this message]
2026-03-23 12:50     ` Sumit Garg
2026-03-27 13:39       ` Krzysztof Kozlowski
2026-03-30  6:29         ` Sumit Garg
2026-03-13  7:59   ` Mukesh Ojha
2026-03-23 13:01     ` Sumit Garg
2026-03-15 16:33   ` Harshal Dev
2026-03-15 16:33     ` Harshal Dev via OP-TEE
2026-03-23 13:12     ` Sumit Garg
2026-03-23 13:12       ` Sumit Garg via OP-TEE
2026-03-16  7:51   ` Krzysztof Kozlowski
2026-03-16  7:51     ` Krzysztof Kozlowski via OP-TEE
2026-03-16 23:02     ` Trilok Soni
2026-03-16 23:02       ` Trilok Soni via OP-TEE
2026-03-23 13:22     ` Sumit Garg
2026-03-23 13:22       ` Sumit Garg via OP-TEE
2026-03-23 14:19       ` Krzysztof Kozlowski
2026-03-23 14:19         ` Krzysztof Kozlowski via OP-TEE
2026-03-23 14:26         ` Konrad Dybcio
2026-03-23 14:26           ` Konrad Dybcio via OP-TEE
2026-03-27 13:56           ` Krzysztof Kozlowski
2026-03-27 13:56             ` Krzysztof Kozlowski via OP-TEE
2026-03-30  7:08             ` Sumit Garg
2026-03-30  7:08               ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 03/15] firmware: qcom_scm: Migrate to " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-13  7:56   ` Mukesh Ojha
2026-03-23 13:33     ` Sumit Garg
2026-03-27 12:10   ` Harshal Dev
2026-03-27 12:10     ` Harshal Dev via OP-TEE
2026-03-27 12:18     ` Sumit Garg
2026-03-27 12:18       ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 04/15] firmware: qcom: Add a PAS TEE service Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-13 11:07   ` Mukesh Ojha
2026-03-23 13:38     ` Sumit Garg
2026-03-12  6:27 ` [PATCH v2 05/15] remoteproc: qcom_q6v5_pas: Switch over to generic PAS TZ APIs Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 06/15] remoteproc: qcom_q6v5_mss: Switch " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 07/15] soc: qcom: mdtloader: " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 08/15] remoteproc: qcom_wcnss: " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 09/15] remoteproc: qcom: Select QCOM_PAS_TEE service backend Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 10/15] drm/msm: Switch to generic PAS TZ APIs Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 11/15] media: qcom: " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 12/15] net: ipa: " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 13/15] wifi: ath12k: " Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 14/15] firmware: qcom_scm: Remove SCM PAS wrappers Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE
2026-03-12  6:27 ` [PATCH v2 15/15] MAINTAINERS: Add maintainer entry for Qualcomm PAS TZ service Sumit Garg
2026-03-12  6:27   ` Sumit Garg via OP-TEE

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=acE4WXdiuTd1tjAp@sumit-xelite \
    --to=sumit.garg@kernel.org \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=akhilpo@oss.qualcomm.com \
    --cc=amirreza.zarrabi@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=apurupa@qti.qualcomm.com \
    --cc=ath12k@lists.infradead.org \
    --cc=bod@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dikshita.agarwal@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=edumazet@google.com \
    --cc=elder@kernel.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jens.wiklander@linaro.org \
    --cc=jesszhan0024@gmail.com \
    --cc=jjohnson@kernel.org \
    --cc=jorge.ramirez@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mchehab@kernel.org \
    --cc=mukesh.ojha@oss.qualcomm.com \
    --cc=netdev@vger.kernel.org \
    --cc=op-tee@lists.trustedfirmware.org \
    --cc=pabeni@redhat.com \
    --cc=pavan.kondeti@oss.qualcomm.com \
    --cc=robh@kernel.org \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    --cc=skare@qti.qualcomm.com \
    --cc=srinivas.kandagatla@oss.qualcomm.com \
    --cc=sumit.garg@oss.qualcomm.com \
    --cc=tonyh@qti.qualcomm.com \
    --cc=trilokkumar.soni@oss.qualcomm.com \
    --cc=vignesh.viswanathan@oss.qualcomm.com \
    --cc=vikash.garodia@oss.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.