Re: [PATCH v2 1/2] dt-bindings: firmware: arm,scmi: support parameter passing in smc/hvc

From: Nikunj Kela
Date: Tue Apr 11 2023 - 10:47:19 EST



On 4/11/2023 5:54 AM, Sudeep Holla wrote:
On Mon, Apr 10, 2023 at 11:20:57AM -0700, Nikunj Kela wrote:
Currently, smc/hvc calls are made with smc-id only. The parameters are
all set to zeros. This patch defines two optional device tree bindings,
that can be used to pass parameters in smc/hvc calls.

Why 2 values ?

I can do with one property if you prefer that. Its just I wanted to ensure that whosoever is setting

the parameter list, is mindful of 32bit vs 64bit convention. If we use one property, do you propose to add a new property like width to specify if the  parameter list is for 32bit vs 64bit?

This is useful when multiple scmi instances are used with common smc-id.

I really would like to avoid this binding. Because of lack of standard
SMC/HVC FID for SCMI we had to add this binding. Extending for newer use
case like this in a vendor specific way is something I would like to avoid.
If you have a solution to get rid of FID from DTB node, I will follow the same however until that happens, my view is that we put the parameters in dtb.

Signed-off-by: Nikunj Kela <quic_nkela@xxxxxxxxxxx>
---
.../devicetree/bindings/firmware/arm,scmi.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index 5824c43e9893..ecf76b763c8c 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -115,6 +115,23 @@ properties:
description:
SMC id required when using smc or hvc transports
+ arm,smc32-params:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description:
+ An optional parameter list passed in smc32 or hvc32 calls
+ default: 0
+ minItems: 1
+ maxItems: 6
+
+ arm,smc64-params:
+ $ref: /schemas/types.yaml#/definitions/uint64-array
+ description:
+ An optional parameter list passed in smc64 or hvc64 calls.
+ This is valid only on ARM64 machines.
+ default: 0
+ minItems: 1
+ maxItems: 6
+
Even if we end up adding(which I would very much like to avoid), I don't see
the need for 32 and 64 bit params like this. There must be ways to avoid that
used by some property in some other binding(I will look for one if we choose
this path)