RE: [EXT] Re: [PATCH v6 2/5] dt-bindings: arm: fsl: add imx-se-fw binding doc

From: Pankaj Gupta
Date: Wed Jul 24 2024 - 07:02:38 EST




> -----Original Message-----
> From: Conor Dooley <conor@xxxxxxxxxx>
> Sent: Tuesday, July 23, 2024 7:38 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>; linux-doc@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; imx@xxxxxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [EXT] Re: [PATCH v6 2/5] dt-bindings: arm: fsl: add imx-se-fw
> binding doc
>
> On Tue, Jul 23, 2024 at 09:28:31AM +0000, Pankaj Gupta wrote:
> >
> > > -----Original Message-----
> > > From: Conor Dooley <conor@xxxxxxxxxx>
> > > Sent: Monday, July 22, 2024 10:20 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>; linux-doc@xxxxxxxxxxxxxxx; linux-
> > > kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> > > imx@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> > > Subject: [EXT] Re: [PATCH v6 2/5] dt-bindings: arm: fsl: add
> > > imx-se-fw binding doc
>
> Please fix this ^
>
> > >
> > > On Mon, Jul 22, 2024 at 10:21:37AM +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 | 91
> > > ++++++++++++++++++++++
> > > > 1 file changed, 91 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..7511d0e9cf98
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/firmware/fsl,imx-se.yaml
> > > > @@ -0,0 +1,91 @@
> > > > +# 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(se) is based on
> > > > + the messaging unit(s).
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + enum:
> > > > + - fsl,imx8ulp-se
> > > > + - fsl,imx93-se
> > > > + - fsl,imx95-se
> > > > +
> > > > + mboxes:
> > > > + items:
> > > > + - description: mailbox phandle to send message to se firmware
> > > > + - description: mailbox phandle to receive message from se
> > > > + firmware
> > > > +
> > > > + mbox-names:
> > > > + items:
> > > > + - const: tx
> > > > + - const: rx
> > > > +
> > > > + memory-region:
> > > > + maxItems: 1
> > > > +
> > > > + sram:
> > > > + maxItems: 1
> > > > +
> > > > +required:
> > > > + - compatible
> > > > + - mboxes
> > > > + - mbox-names
> > > > +
> > > > +allOf:
> > > > + # memory-region
> > > > + - if:
> > > > + properties:
> > > > + compatible:
> > > > + contains:
> > > > + enum:
> > > > + - fsl,imx8ulp-se
> > > > + - fsl,imx93-se
> > > > + then:
> > > > + required:
> > > > + - memory-region
> > > > + else:
> > > > + properties:
> > > > + memory-region: false
> > > > +
> > > > + # sram
> > > > + - if:
> > > > + properties:
> > > > + compatible:
> > > > + contains:
> > > > + enum:
> > > > + - fsl,imx8ulp-se
> > > > + then:
> > > > + required:
> > > > + - sram
> > > > +
> > > > + else:
> > > > + properties:
> > > > + sram: false
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > + - |
> > > > + senclave-firmware {
> > >
> > > Last revision this was "firmware", but now you've got something that
> > > appears non-generic. Why did you change it?
> >
> > In case you missed, there was a previous email requesting your view on this
> change.
> > Having node as "firmware {", is very generic that has wide interpretation.
> > Hence, replaced firmware with "senclave-firmware".
>
> Which I came across after reading the updated series. If you ask me for my
> opinion on something, just wait til I reply to you before sending another
> version.

Sure, will ensure that in future.

>
> > Why "senclave"?
> > Like sram, for secure RAM, I proposed senclave for secure enclave.
> >
> >
> > Moreover, there are plenty of examples of YAML(s), that were already
> committed; that are using this:
> > linux_bkp$:> find Documentation/ -name "*.yaml" | xargs grep -r "\-
> firmware {"
>
> Just because something got in before doesn't mean it should now.
>
Ok, understood.

> > Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.yaml:
> zynqmp_firmware: zynqmp-firmware {
> > Documentation/devicetree/bindings/fpga/xlnx,zynqmp-pcap-fpga.yaml:
> zynqmp_firmware: zynqmp-firmware {
> > Documentation/devicetree/bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml:
> zynqmp-firmware {
> > And more...
> >
> > If you any other suggested word to pre-fix , that narrows down this broad
> referenced word "firmware".
>
> > Please suggest.
>
> I already did:

In case of imx8ulp, there is a single node.
Having a same node name for both parent and child, is bit strange.
firmware {
firmware {
};
};

Request you to allow to re-evaluate this point.
Thanks.

> > > The normal differentiator for multiple nodes is -[0-9]*, why can't
> > > you use that, if you're worried about multiple nodes?
> > Thanks Conor, for the suggestion this. Will use this. Thanks.