Re: [PATCH v4 4/4] firmware: arm_scmi: Add qcom hvc/shmem transport support

From: Nikunj Kela
Date: Thu Oct 05 2023 - 18:33:38 EST



On 10/5/2023 3:20 PM, Bjorn Andersson wrote:
On Wed, Oct 04, 2023 at 05:06:30PM +0100, Sudeep Holla wrote:
On Tue, Oct 03, 2023 at 09:16:27AM -0700, Nikunj Kela wrote:
On 10/3/2023 4:19 AM, Sudeep Holla wrote:
On Mon, Sep 11, 2023 at 12:43:59PM -0700, Nikunj Kela wrote:
diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c
[..]
@@ -63,6 +66,8 @@ struct scmi_smc {
u32 func_id;
u32 param_page;
u32 param_offset;
+ u64 cap_id;
Can it be unsigned long instead so that it just works for both 32 and 64 bit.
My first version of this patch was ulong but Bjorn suggested to make this
structure size fixed i.e. architecture independent. Hence changed it to u64.
If you are ok with ulong, I can change it back to ulong.

SMCCC pre-v1.2 used the common structure in that way. I don't see any issue
with that. I haven't followed Bjorn suggestions/comments though.

My request was that funcId and capId is an ABI between the firmware and
the OS, so I'd like for that to use well defined, fixed sized, data
types - if nothing else just for documentation purpose.

These values will be truncated when passed to arm_smccc_1_1_invoke()
anyways, so I don't have any opinion against using unsigned long here...


PS. I understand why func_id is u32, but why are param_page and
param_offset u32?

That was done to keep it uniform across smc32/smc64 conventions.


Regards,
Bjorn