Hi Conor, > > > +properties: > > > + $nodename: > > > + pattern: "^[0-9a-z]*-if@[0-9a-f]+$" > > > > Just "firmware@<hex>" please. > > Modified as per your suggestion, - pattern: "^[0-9a-z]*-if@[0-9a-f]+$" + pattern: "^[0-9a-z]*-if@<hex>" encountering the following error: /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,imx-se.example.dtb: ele-if@0: $nodename:0: 'ele-if@0' does not match '^[0-9a-z]*-if@<hex>' from schema $id: http://devicetree.org/schemas/firmware/fsl,imx-se.yaml# /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,imx-se.example.dtb: v2x-if@3: $nodename:0: 'v2x-if@3' does not match '^[0-9a-z]*-if@<hex>' from schema $id: http://devicetree.org/schemas/firmware/fsl,imx-se.yaml# /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,imx-se.example.dtb: v2x-if@4: $nodename:0: 'v2x-if@4' does not match '^[0-9a-z]*-if@<hex>' from schema $id: http://devicetree.org/schemas/firmware/fsl,imx-se.yaml# /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,imx-se.example.dtb: v2x-if@5: $nodename:0: 'v2x-if@5' does not match '^[0-9a-z]*-if@<hex>' from schema $id: http://devicetree.org/schemas/firmware/fsl,imx-se.yaml# Please help and guide to resolve this comment, correctly. Highly appreciated. Thanks. Regards Pankaj > -----Original Message----- > From: Pankaj Gupta > Sent: Tuesday, June 18, 2024 4:29 PM > To: Conor Dooley <conor@xxxxxxxxxx> > Cc: Jonathan Corbet <corbet@xxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; > Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley > <conor+dt@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>; Sascha Hauer > <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team > <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx>; Rob > Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski > <krzysztof.kozlowski+dt@xxxxxxxxxx>; linux-doc@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; imx@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Subject: RE: [EXT] Re: [PATCH v3 2/5] dt-bindings: arm: fsl: add imx-se-fw > binding doc > > > > > -----Original Message----- > > From: Conor Dooley <conor@xxxxxxxxxx> > > Sent: Monday, June 17, 2024 10:07 PM > > To: Pankaj Gupta <pankaj.gupta@xxxxxxx> > > Cc: Jonathan Corbet <corbet@xxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; > > Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley > > <conor+dt@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>; Sascha Hauer > > <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team > > <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx>; Rob > > Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski > > <krzysztof.kozlowski+dt@xxxxxxxxxx>; linux-doc@xxxxxxxxxxxxxxx; linux- > > kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; > > imx@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > > Subject: [EXT] Re: [PATCH v3 2/5] dt-bindings: arm: fsl: add imx-se-fw > > binding doc > > > > On Mon, Jun 17, 2024 at 12:59:40PM +0530, Pankaj Gupta wrote: > > > The NXP security hardware IP(s) like: i.MX EdgeLock Enclave, V2X > > > etc., creates an embedded secure enclave within the SoC boundary to > > > enable features like: > > > - HSM > > > - SHE > > > - V2X > > > > > > Secure-Enclave(s) communication interface are typically via message > > > unit, i.e., based on mailbox linux kernel driver. This driver > > > enables communication ensuring well defined message sequence > > > protocol between Application Core and enclave's firmware. > > > > > > Driver configures multiple misc-device on the MU, for multiple > > > user-space applications, to be able to communicate over single MU. > > > > > > It exists on some i.MX processors. e.g. i.MX8ULP, i.MX93 etc. > > > > > > Signed-off-by: Pankaj Gupta <pankaj.gupta@xxxxxxx> > > > --- > > > .../devicetree/bindings/firmware/fsl,imx-se.yaml | 160 > > +++++++++++++++++++++ > > > 1 file changed, 160 insertions(+) > > > > > > diff --git > > > a/Documentation/devicetree/bindings/firmware/fsl,imx-se.yaml > > > b/Documentation/devicetree/bindings/firmware/fsl,imx-se.yaml > > > new file mode 100644 > > > index 000000000000..60ad1c4a3dfa > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/firmware/fsl,imx-se.yaml > > > @@ -0,0 +1,160 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/firmware/fsl,imx-se.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: NXP i.MX HW Secure Enclave(s) EdgeLock Enclave > > > + > > > +maintainers: > > > + - Pankaj Gupta <pankaj.gupta@xxxxxxx> > > > + > > > +description: | > > > + NXP's SoC may contain one or multiple embedded secure-enclave HW > > > + IP(s) like i.MX EdgeLock Enclave, V2X etc. These NXP's HW IP(s) > > > + enables features like > > > + - Hardware Security Module (HSM), > > > + - Security Hardware Extension (SHE), and > > > + - Vehicular to Anything (V2X) > > > + > > > + Communication interface to the secure-enclaves is based on the > > > + messaging unit(s). > > > + > > > +properties: > > > + $nodename: > > > + pattern: "^[0-9a-z]*-if@[0-9a-f]+$" > > > > Just "firmware@<hex>" please. > > > > Modified as per your suggestion, > - pattern: "^[0-9a-z]*-if@[0-9a-f]+$" > + pattern: "^[0-9a-z]*-if@<hex>" > > encountering the following error: > /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,i > mx-se.example.dtb: ele-if@0: $nodename:0: 'ele-if@0' does not match '^[0- > 9a-z]*-if@<hex>' > from schema $id: http://devicetree.org/schemas/firmware/fsl,imx- > se.yaml# > /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,i > mx-se.example.dtb: v2x-if@3: $nodename:0: 'v2x-if@3' does not match '^[0- > 9a-z]*-if@<hex>' > from schema $id: http://devicetree.org/schemas/firmware/fsl,imx- > se.yaml# > /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,i > mx-se.example.dtb: v2x-if@4: $nodename:0: 'v2x-if@4' does not match '^[0- > 9a-z]*-if@<hex>' > from schema $id: http://devicetree.org/schemas/firmware/fsl,imx- > se.yaml# > /home/yuktilab/linux_bkp/Documentation/devicetree/bindings/firmware/fsl,i > mx-se.example.dtb: v2x-if@5: $nodename:0: 'v2x-if@5' does not match '^[0- > 9a-z]*-if@<hex>' > from schema $id: http://devicetree.org/schemas/firmware/fsl,imx- > se.yaml# > > Please help and guide to resolve this comment, correctly. > Highly appreciated. Thanks. > > > > + > > > + compatible: > > > + enum: > > > + - fsl,imx8ulp-se > > > + - fsl,imx93-se > > > + - fsl,imx95-se > > > + > > > + reg: > > > + maxItems: 1 > > > + description: Identifier of the communication interface to secure- > enclave. > > > + > > > + mboxes: > > > + description: contain a list of phandles to mailboxes. > > > + items: > > > + - description: Specify the mailbox used to send message to se > firmware > > > + - description: Specify the mailbox used to receive message > > > + from se firmware > > > + > > > + mbox-names: > > > + items: > > > + - const: tx > > > + - const: rx > > > + - const: txdb > > > + - const: rxdb > > > + minItems: 2 > > > + > > > + memory-region: > > > + description: contains a list of phandles to reserved external memory. > > > + items: > > > + - description: It is used by secure-enclave firmware. It is an optional > > > + property based on compatible and identifier to > > > + communication > > interface. > > > + (see bindings/reserved-memory/reserved-memory.txt) > > > + > > > + sram: > > > + description: contains a list of phandles to sram. > > > > There's only 1 phandle allowed, don't describe it as a list. > > Same for memory-region. > > Accepted. Will do the following changes. > memory-region: > - description: contains a list of phandles to reserved external memory. > + description: contains the phandle to reserved external memory. > > sram: > - description: contains a list of phandles to sram. > - $ref: /schemas/types.yaml#/definitions/phandle-array > + description: contains the phandle to sram. > items: > > > > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > > + items: > > > + - description: Phandle to the device SRAM. It is an optional property > > > + based on compatible and identifier to communication interface. > > > + > > > +allOf: > > > + # memory-region > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - fsl,imx8ulp-se > > > + - fsl,imx93-se > > > + then: > > > + required: > > > + - memory-region > > > > > + else: > > > + not: > > > + required: > > > + - memory-region > > > > Use > > > > else: properties: memory-region: false > > > > Same for sram. > Accepted will be corrected in V4. > # memory-region > - not: > - required: > - - memory-region > + properties: > + memory-region: false > > # sram > else: > - not: > - required: > - - sram > + properties: > + sram: false > > > > Sort the allOf after required. > Accepted. Will move allOf after "additionalProperties:" > > > > > > + > > > + # sram > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - fsl,imx8ulp-se > > > + then: > > > + required: > > > + - sram > > > + else: > > > + not: > > > + required: > > > + - sram > > > + > > > +required: > > > + - compatible > > > + - reg > > > + - mboxes > > > + - mbox-names > > > + > > > +additionalProperties: false > > > + > > > +examples: > > > + - | > > > + firmware { > > > > You've made up these firmware "buses" here, what purpose do they > > serve, other than allowing you to have a reg property? > True. > Additionally, these are firmware nodes, these nodes are semantically put in > firmware "buses". > > > > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + ele-if@0 { > > > + compatible = "fsl,imx8ulp-se"; > > > + reg = <0x0>; > > > > What does the reg property even do? Is it ever more than 0? > > Can this information be provided as a mbox cell? > Yes, there are more than 0 nodes for i.MX95 platforms, i.e., total of around 7 > such nodes. > Reg property will help to identify the node id, by other kernel management > layer like NVMEM (patches to follow). > > > > > > + mboxes = <&s4muap 0 0>, <&s4muap 1 0>; > > > + mbox-names = "tx", "rx"; > > > + sram = <&sram0>; > > > + memory-region = <&ele_reserved>; > > > + }; > > > + }; > > > + - | > > > + firmware { > > > > These examples are all basically the same, drop all but one. > Ok, will keep the example of i.MX95. > > > > > Thanks, > > Conor. > > > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + ele-if@0 { > > > + compatible = "fsl,imx93-se"; > > > + reg = <0x0>; > > > + mboxes = <&s4muap 0 0>, <&s4muap 1 0>; > > > + mbox-names = "tx", "rx"; > > > + memory-region = <&ele_reserved>; > > > + }; > > > + }; > > > + - | > > > + firmware { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + ele-if@0 { > > > + compatible = "fsl,imx95-se"; > > > + reg = <0x0>; > > > + mboxes = <&ele_mu0 0 0>, <&ele_mu0 1 0>; > > > + mbox-names = "tx", "rx"; > > > + }; > > > + v2x-if@3 { > > > + compatible = "fsl,imx95-se"; > > > + reg = <0x3>; > > > + mboxes = <&v2x_mu 0 0>, <&v2x_mu 1 0>; > > > + mbox-names = "tx", "rx"; > > > + }; > > > + v2x-if@4 { > > > + compatible = "fsl,imx95-se"; > > > + reg = <0x4>; > > > + mboxes = <&v2x_mu6 0 0>, <&v2x_mu6 1 0>; > > > + mbox-names = "tx", "rx"; > > > + }; > > > + v2x-if@5 { > > > + compatible = "fsl,imx95-se"; > > > + reg = <0x5>; > > > + mboxes = <&v2x_mu7 0 0>, <&v2x_mu7 1 0>; > > > + mbox-names = "tx", "rx"; > > > + }; > > > + }; > > > +... > > > > > > -- > > > 2.34.1 > > >