Re: [PATCH v2 01/18] firmware: qcom_scm: Rename macros and structures

From: Stephen Boyd
Date: Tue Nov 19 2019 - 16:47:12 EST


Quoting eberman@xxxxxxxxxxxxxx (2019-11-15 17:19:13)
> On 2019-11-15 15:27, Stephen Boyd wrote:
> > ... to here I don't understand why any of it needs to change. It looks
> > like a bunch of churn and it conflates qcom SCM calls with SMCCC which
> > is not desirable. Those two concepts are different.
>
> I can see the confusion. The goal with this patch is to make it more
> clear which
> macros and structures are for SCM interface from those which deal with
> the
> implementation of how an SCM call is implemented with the smc
> instruction. It's
> not presently clear that struct qcom_scm_response (for instance) is only
> relevant in the context of legacy convention.
>
> I choose the name "legacy" since only older firmwares use it and having
> "scm_buffer_get_command_buffer" seems even more confusing to me! "SMCCC"
> was
> chosen for lack of a better name.
>
> Additionally, the concern with having qcom_scm_ prefix on these
> functions
> (especially legacy_get_*_buffer()) is you get long function names which
> didn't
> seem desirable. If the long names are preferable, I can update series
> with the
> longer form of the names.
>

This is the hardest problem in computer science. Figuring out a name.
;-)

Maybe call it scm_buffer_*? Because it _is_ scm communication with
shared buffers? The newer calling convention passes arguments in
registers, but the original calling convention passed a buffer around
from non-secure to secure world and then back again and had a embryonic
register based calling convention. That buffer passing still sort of
happens with the new style but it isn't done unless the register count
is larger than 5 or so and the return buffer isn't unbounded in size
like it was done. It also sort of follows the ARM SMC Calling Convection
spec now.