Re: [PATCH V7 5/5] firmware: qcom_scm: ipq5332: add support to pass metadata size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 20, 2024 at 11:26:18AM GMT, Gokul Sriram Palanisamy wrote:
> From: Manikanta Mylavarapu <quic_mmanikan@xxxxxxxxxxx>
> 
> IPQ5332 security software running under trustzone
> requires metadata size. With V2 cmd, pass metadata
> size as well.

Documentation says commit messages should be wrapped at 75 characters,
not 50...

Please improve the second sentence here, "v2 cmd" is coming out of
nowhere. Say that there is a new command with a size parameter added.

Is this operation available on all targets, or is it IPQ-specific?


I don't see the relationship between this patch and the cover letter
subject "remove unnecessary q6 clocks". Should this have been send on
its own?

> 
> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@xxxxxxxxxxx>
> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@xxxxxxxxxxx>
> ---
> Changes in v7:
> 	- No changes.
> 	- Rebased on top of linux-next.
> 
> Changes in v6:
> 	- Rebased on linux-next
> 
> Changes in v5:
> 	- Rebased on linux-next
> 
> Changes in v4:
> 	- Rebased on linux-next
> 
>  drivers/firmware/qcom/qcom_scm.c | 8 ++++++++
>  drivers/firmware/qcom/qcom_scm.h | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
> index e60bef68401c..aa559fd01932 100644
> --- a/drivers/firmware/qcom/qcom_scm.c
> +++ b/drivers/firmware/qcom/qcom_scm.c
> @@ -607,6 +607,14 @@ int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t size,
>  
>  	desc.args[1] = mdata_phys;
>  
> +	if (__qcom_scm_is_call_available(__scm->dev, QCOM_SCM_SVC_PIL,
> +					 QCOM_SCM_PAS_INIT_IMAGE_V2)) {
> +		desc.cmd = QCOM_SCM_PAS_INIT_IMAGE_V2;
> +		desc.arginfo =
> +			QCOM_SCM_ARGS(3, QCOM_SCM_VAL, QCOM_SCM_RW, QCOM_SCM_VAL);
> +		desc.args[2] = size;
> +	}
> +

Please avoid default initialization and then conditionally overwrite
parts of the values. Make a clear:

if (v2 availble) {
	prepare v2 request;
} else {
	prepare v1 request;
}

Regards,
Bjorn

>  	ret = qcom_scm_call(__scm->dev, &desc, &res);
>  	qcom_scm_bw_disable();
>  
> diff --git a/drivers/firmware/qcom/qcom_scm.h b/drivers/firmware/qcom/qcom_scm.h
> index 685b8f59e7a6..008b59cbad36 100644
> --- a/drivers/firmware/qcom/qcom_scm.h
> +++ b/drivers/firmware/qcom/qcom_scm.h
> @@ -96,6 +96,7 @@ struct qcom_tzmem_pool *qcom_scm_get_tzmem_pool(void);
>  
>  #define QCOM_SCM_SVC_PIL		0x02
>  #define QCOM_SCM_PIL_PAS_INIT_IMAGE	0x01
> +#define QCOM_SCM_PAS_INIT_IMAGE_V2	0x1a
>  #define QCOM_SCM_PIL_PAS_MEM_SETUP	0x02
>  #define QCOM_SCM_PIL_PAS_AUTH_AND_RESET	0x05
>  #define QCOM_SCM_PIL_PAS_SHUTDOWN	0x06
> -- 
> 2.34.1
> 




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux