2021-10-20 18:00:53

by Etienne Carriere

[permalink] [raw]
Subject: [PATCH v4 1/2] dt-bindings: arm: Add OP-TEE transport for SCMI

Introduce compatible "linaro,scmi-optee" for SCMI transport channel
based on an OP-TEE service invocation. The compatible mandates a
channel ID defined with property "linaro,optee-channel-id".

Cc: [email protected]
Cc: Rob Herring <[email protected]>
Signed-off-by: Etienne Carriere <[email protected]>
---
Changes since v3:
- Add description for linaro,optee-channel-id in patternProperties
specifying protocol can optionaly define a dedicated channel id.
- Fix DTS example (duplicated phandles issue, subnodes ordering)
- Fix typo in DTS example and description comments.

Changes since v2:
- Define mandatory property linaro,optee-channel-id
- Rebased on yaml description file

Changes since v1:
- Removed modification regarding mboxes property description.
---
.../bindings/firmware/arm,scmi.yaml | 66 +++++++++++++++++++
1 file changed, 66 insertions(+)

diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index 5c4c6782e052..997e5f15c735 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -38,6 +38,9 @@ properties:
The virtio transport only supports a single device.
items:
- const: arm,scmi-virtio
+ - description: SCMI compliant firmware with OP-TEE transport
+ items:
+ - const: linaro,scmi-optee

interrupts:
description:
@@ -83,6 +86,11 @@ properties:
description:
SMC id required when using smc or hvc transports

+ linaro,optee-channel-id:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Channel specifier required when using OP-TEE transport.
+
protocol@11:
type: object
properties:
@@ -195,6 +203,13 @@ patternProperties:
minItems: 1
maxItems: 2

+ linaro,optee-channel-id:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Channel specifier required when using OP-TEE transport and
+ protocol has a dedicated communication channel.
+ maxItems: 1
+
required:
- reg

@@ -226,6 +241,16 @@ else:
- arm,smc-id
- shmem

+ else:
+ if:
+ properties:
+ compatible:
+ contains:
+ const: linaro,scmi-optee
+ then:
+ required:
+ - linaro,optee-channel-id
+
examples:
- |
firmware {
@@ -340,7 +365,48 @@ examples:
reg = <0x11>;
#power-domain-cells = <1>;
};
+ };
+ };

+ - |
+ firmware {
+ scmi {
+ compatible = "linaro,scmi-optee";
+ linaro,optee-channel-id = <0>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ scmi_dvfs1: protocol@13 {
+ reg = <0x13>;
+ linaro,optee-channel-id = <1>;
+ shmem = <&cpu_optee_lpri0>;
+ #clock-cells = <1>;
+ };
+
+ scmi_clk0: protocol@14 {
+ reg = <0x14>;
+ #clock-cells = <1>;
+ };
+ };
+ };
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ sram@51000000 {
+ compatible = "mmio-sram";
+ reg = <0x0 0x51000000 0x0 0x10000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x0 0x51000000 0x10000>;
+
+ cpu_optee_lpri0: optee-shm-section@0 {
+ compatible = "arm,scmi-shmem";
+ reg = <0x0 0x80>;
+ };
};
};

--
2.17.1


2021-10-20 21:16:26

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: arm: Add OP-TEE transport for SCMI

On Wed, 20 Oct 2021 19:57:46 +0200, Etienne Carriere wrote:
> Introduce compatible "linaro,scmi-optee" for SCMI transport channel
> based on an OP-TEE service invocation. The compatible mandates a
> channel ID defined with property "linaro,optee-channel-id".
>
> Cc: [email protected]
> Cc: Rob Herring <[email protected]>
> Signed-off-by: Etienne Carriere <[email protected]>
> ---
> Changes since v3:
> - Add description for linaro,optee-channel-id in patternProperties
> specifying protocol can optionaly define a dedicated channel id.
> - Fix DTS example (duplicated phandles issue, subnodes ordering)
> - Fix typo in DTS example and description comments.
>
> Changes since v2:
> - Define mandatory property linaro,optee-channel-id
> - Rebased on yaml description file
>
> Changes since v1:
> - Removed modification regarding mboxes property description.
> ---
> .../bindings/firmware/arm,scmi.yaml | 66 +++++++++++++++++++
> 1 file changed, 66 insertions(+)
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: sram@51000000: 'optee-shm-section@0' does not match any of the regexes: '^([a-z]*-)?sram(-section)?@[a-f0-9]+$', 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sram/sram.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1544001

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.

2021-10-21 08:39:36

by Etienne Carriere

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: arm: Add OP-TEE transport for SCMI

Hello Rob,

On Wed, 20 Oct 2021 at 23:14, Rob Herring <[email protected]> wrote:
>
> On Wed, 20 Oct 2021 19:57:46 +0200, Etienne Carriere wrote:
> > Introduce compatible "linaro,scmi-optee" for SCMI transport channel
> > based on an OP-TEE service invocation. The compatible mandates a
> > channel ID defined with property "linaro,optee-channel-id".
> >
> > Cc: [email protected]
> > Cc: Rob Herring <[email protected]>
> > Signed-off-by: Etienne Carriere <[email protected]>
> > ---
> > Changes since v3:
> > - Add description for linaro,optee-channel-id in patternProperties
> > specifying protocol can optionaly define a dedicated channel id.
> > - Fix DTS example (duplicated phandles issue, subnodes ordering)
> > - Fix typo in DTS example and description comments.
> >
> > Changes since v2:
> > - Define mandatory property linaro,optee-channel-id
> > - Rebased on yaml description file
> >
> > Changes since v1:
> > - Removed modification regarding mboxes property description.
> > ---
> > .../bindings/firmware/arm,scmi.yaml | 66 +++++++++++++++++++
> > 1 file changed, 66 insertions(+)
> >
>
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: sram@51000000: 'optee-shm-section@0' does not match any of the regexes: '^([a-z]*-)?sram(-section)?@[a-f0-9]+$', 'pinctrl-[0-9]+'
> From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sram/sram.yaml
>
> doc reference errors (make refcheckdocs):
>
> See https://patchwork.ozlabs.org/patch/1544001
>
> This check can fail if there are any dependencies. The base for a patch
> series is generally the most recent rc1.
>
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
>
> pip3 install dtschema --upgrade
>
> Please check and re-submit.
>

For info, i've upgraded dtsschemas, tested on v5.15-rc6 but don't get any error.

Yet, i'll fix the DTS example accordingly in the v5.

Regards,
Etienne