diff mbox series

[2/3] dt-bindings: tpm: Convert IBM vTPM bindings to DT schema

Message ID fc5c973d30df7ece297e19edad19ffe86378b6b1.1700555862.git.lukas@wunner.de (mailing list archive)
State New
Headers show
Series dt-bindings: tpm: Clean all the things | expand

Commit Message

Lukas Wunner Nov. 21, 2023, 9:48 a.m. UTC
Convert the devicetree bindings for the IBM Virtual Trusted Platform
Module to DT schema.  Drop properties which are already documented in
tpm-common.yaml.

Document the "IBM,vtpm20" compatible string introduced by commit
18b3670d79ae ("tpm: ibmvtpm: Add support for TPM2").

Signed-off-by: Lukas Wunner <lukas@wunner.de>
---
 .../bindings/security/tpm/ibmvtpm.txt         |  41 -------
 .../devicetree/bindings/tpm/ibm,vtpm.yaml     | 101 ++++++++++++++++++
 2 files changed, 101 insertions(+), 41 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
 create mode 100644 Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml

Comments

Rob Herring (Arm) Nov. 21, 2023, 10:57 a.m. UTC | #1
On Tue, 21 Nov 2023 10:48:42 +0100, Lukas Wunner wrote:
> Convert the devicetree bindings for the IBM Virtual Trusted Platform
> Module to DT schema.  Drop properties which are already documented in
> tpm-common.yaml.
> 
> Document the "IBM,vtpm20" compatible string introduced by commit
> 18b3670d79ae ("tpm: ibmvtpm: Add support for TPM2").
> 
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> ---
>  .../bindings/security/tpm/ibmvtpm.txt         |  41 -------
>  .../devicetree/bindings/tpm/ibm,vtpm.yaml     | 101 ++++++++++++++++++
>  2 files changed, 101 insertions(+), 41 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
>  create mode 100644 Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
> 

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/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml: required:4: 'ibm,#dma-address-cells' does not match '^([a-zA-Z#][a-zA-Z0-9,+\\-._@]{0,63}|\\$nodename)$'
	hint: 'required' must be valid DT property or node names
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml: required:5: 'ibm,#dma-size-cells' does not match '^([a-zA-Z#][a-zA-Z0-9,+\\-._@]{0,63}|\\$nodename)$'
	hint: 'required' must be valid DT property or node names
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/ibm,vtpm.example.dtb: vtpm@30000003: Unevaluated properties are not allowed ('linux,sml-base', 'linux,sml-size' were unexpected)
	from schema $id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/ibm,vtpm.example.dtb: vtpm@30000003: 'ibm,#dma-address-cells', 'ibm,#dma-size-cells' do not match any of the regexes: '.*-names$', '.*-supply$', '^#.*-cells$', '^#[a-zA-Z0-9,+\\-._]{0,63}$', '^[a-zA-Z0-9][a-zA-Z0-9,+\\-._]{0,63}$', '^[a-zA-Z0-9][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$', '^__.*__$', 'pinctrl-[0-9]+'
	from schema $id: http://devicetree.org/schemas/dt-core.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/fc5c973d30df7ece297e19edad19ffe86378b6b1.1700555862.git.lukas@wunner.de

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

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 after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Lukas Wunner Nov. 21, 2023, 11:03 a.m. UTC | #2
On Tue, Nov 21, 2023 at 03:57:21AM -0700, Rob Herring wrote:
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):

Your bot hasn't read the cover letter, which discusses those errors:

https://lore.kernel.org/linux-devicetree/cover.1700555862.git.lukas@wunner.de/
Rob Herring (Arm) Nov. 21, 2023, 4:19 p.m. UTC | #3
On Tue, Nov 21, 2023 at 10:48:42AM +0100, Lukas Wunner wrote:
> Convert the devicetree bindings for the IBM Virtual Trusted Platform
> Module to DT schema.  Drop properties which are already documented in
> tpm-common.yaml.
> 
> Document the "IBM,vtpm20" compatible string introduced by commit
> 18b3670d79ae ("tpm: ibmvtpm: Add support for TPM2").
> 
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> ---
>  .../bindings/security/tpm/ibmvtpm.txt         |  41 -------
>  .../devicetree/bindings/tpm/ibm,vtpm.yaml     | 101 ++++++++++++++++++
>  2 files changed, 101 insertions(+), 41 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
>  create mode 100644 Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
> 
> diff --git a/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt b/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
> deleted file mode 100644
> index d89f99971368..000000000000
> --- a/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -* Device Tree Bindings for IBM Virtual Trusted Platform Module(vtpm)
> -
> -Required properties:
> -
> -- compatible            : property name that conveys the platform architecture
> -                          identifiers, as 'IBM,vtpm'
> -- device_type           : specifies type of virtual device
> -- interrupts            : property specifying the interrupt source number and
> -                          sense code associated with this virtual I/O Adapters
> -- ibm,my-drc-index      : integer index for the connector between the device
> -                          and its parent - present only if Dynamic
> -                          Reconfiguration(DR) Connector is enabled
> -- ibm,#dma-address-cells: specifies the number of cells that are used to
> -                          encode the physical address field of dma-window
> -                          properties
> -- ibm,#dma-size-cells   : specifies the number of cells that are used to
> -                          encode the size field of dma-window properties
> -- ibm,my-dma-window     : specifies DMA window associated with this virtual
> -                          IOA
> -- ibm,loc-code          : specifies the unique and persistent location code
> -                          associated with this virtual I/O Adapters
> -- linux,sml-base        : 64-bit base address of the reserved memory allocated
> -                          for the firmware event log
> -- linux,sml-size        : size of the memory allocated for the firmware event log
> -
> -Example (IBM Virtual Trusted Platform Module)
> ----------------------------------------------
> -
> -                vtpm@30000003 {
> -                        ibm,#dma-size-cells = <0x2>;
> -                        compatible = "IBM,vtpm";
> -                        device_type = "IBM,vtpm";
> -                        ibm,my-drc-index = <0x30000003>;
> -                        ibm,#dma-address-cells = <0x2>;
> -                        linux,sml-base = <0xc60e 0x0>;
> -                        interrupts = <0xa0003 0x0>;
> -                        ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
> -                        ibm,loc-code = "U8286.41A.10082DV-V3-C3";
> -                        reg = <0x30000003>;
> -                        linux,sml-size = <0xbce10200>;
> -                };
> diff --git a/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml b/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
> new file mode 100644
> index 000000000000..a88ed96c80cf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
> @@ -0,0 +1,101 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: IBM Virtual Trusted Platform Module (vTPM)
> +
> +maintainers:
> +  - Nayna Jain <nayna@linux.ibm.com>
> +
> +description: |
> +  Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
> +  It is supported through the adjunct partition with firmware release 740
> +  or higher.  With vTPM support, each lpar is able to have its own vTPM
> +  without the physical TPM hardware.  The TPM functionality is provided by
> +  communicating with the vTPM adjunct partition through Hypervisor calls
> +  (Hcalls) and Command/Response Queue (CRQ) commands.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - IBM,vtpm
> +      - IBM,vtpm20
> +
> +  device_type:
> +    description:
> +      type of virtual device

const: IBM,vtpm

> +
> +  reg:
> +    maxItems: 1
> +
> +  'ibm,#dma-address-cells':
> +    description:
> +      number of cells that are used to encode the physical address field of
> +      dma-window properties
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +
> +  'ibm,#dma-size-cells':
> +    description:
> +      number of cells that are used to encode the size field of
> +      dma-window properties
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +
> +  ibm,my-dma-window:
> +    description:
> +      DMA window associated with this virtual I/O Adapter
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    minItems: 5
> +    maxItems: 5
> +
> +  ibm,my-drc-index:
> +    description:
> +      integer index for the connector between the device and its parent;
> +      present only if Dynamic Reconfiguration (DR) Connector is enabled
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  ibm,loc-code:
> +    description:
> +      unique and persistent location code associated with this virtual
> +      I/O Adapter
> +    $ref: /schemas/types.yaml#/definitions/string
> +
> +required:
> +  - compatible
> +  - device_type
> +  - reg
> +  - interrupts
> +  - ibm,#dma-address-cells
> +  - ibm,#dma-size-cells
> +  - ibm,my-dma-window
> +  - ibm,my-drc-index
> +  - ibm,loc-code
> +  - linux,sml-base
> +  - linux,sml-size
> +
> +allOf:
> +  - $ref: tpm-common.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    soc {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        vtpm@30000003 {

tpm@...

With that,

Reviewed-by: Rob Herring <robh@kernel.org>
Lukas Wunner Nov. 24, 2023, 8:43 a.m. UTC | #4
On Tue, Nov 21, 2023 at 09:19:25AM -0700, Rob Herring wrote:
> On Tue, Nov 21, 2023 at 10:48:42AM +0100, Lukas Wunner wrote:
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - IBM,vtpm
> > +      - IBM,vtpm20
> > +
> > +  device_type:
> > +    description:
> > +      type of virtual device
> 
> const: IBM,vtpm

Hm, since IBM,vtpm20 is a valid compatible string, I'm guessing it's a
valid device_type as well, so instead of a const I intend to use:

  device_type:
    description:
      type of virtual device
    enum:
      - IBM,vtpm
      - IBM,vtpm20

Thanks,

Lukas
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt b/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
deleted file mode 100644
index d89f99971368..000000000000
--- a/Documentation/devicetree/bindings/security/tpm/ibmvtpm.txt
+++ /dev/null
@@ -1,41 +0,0 @@ 
-* Device Tree Bindings for IBM Virtual Trusted Platform Module(vtpm)
-
-Required properties:
-
-- compatible            : property name that conveys the platform architecture
-                          identifiers, as 'IBM,vtpm'
-- device_type           : specifies type of virtual device
-- interrupts            : property specifying the interrupt source number and
-                          sense code associated with this virtual I/O Adapters
-- ibm,my-drc-index      : integer index for the connector between the device
-                          and its parent - present only if Dynamic
-                          Reconfiguration(DR) Connector is enabled
-- ibm,#dma-address-cells: specifies the number of cells that are used to
-                          encode the physical address field of dma-window
-                          properties
-- ibm,#dma-size-cells   : specifies the number of cells that are used to
-                          encode the size field of dma-window properties
-- ibm,my-dma-window     : specifies DMA window associated with this virtual
-                          IOA
-- ibm,loc-code          : specifies the unique and persistent location code
-                          associated with this virtual I/O Adapters
-- linux,sml-base        : 64-bit base address of the reserved memory allocated
-                          for the firmware event log
-- linux,sml-size        : size of the memory allocated for the firmware event log
-
-Example (IBM Virtual Trusted Platform Module)
----------------------------------------------
-
-                vtpm@30000003 {
-                        ibm,#dma-size-cells = <0x2>;
-                        compatible = "IBM,vtpm";
-                        device_type = "IBM,vtpm";
-                        ibm,my-drc-index = <0x30000003>;
-                        ibm,#dma-address-cells = <0x2>;
-                        linux,sml-base = <0xc60e 0x0>;
-                        interrupts = <0xa0003 0x0>;
-                        ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
-                        ibm,loc-code = "U8286.41A.10082DV-V3-C3";
-                        reg = <0x30000003>;
-                        linux,sml-size = <0xbce10200>;
-                };
diff --git a/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml b/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
new file mode 100644
index 000000000000..a88ed96c80cf
--- /dev/null
+++ b/Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml
@@ -0,0 +1,101 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM Virtual Trusted Platform Module (vTPM)
+
+maintainers:
+  - Nayna Jain <nayna@linux.ibm.com>
+
+description: |
+  Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
+  It is supported through the adjunct partition with firmware release 740
+  or higher.  With vTPM support, each lpar is able to have its own vTPM
+  without the physical TPM hardware.  The TPM functionality is provided by
+  communicating with the vTPM adjunct partition through Hypervisor calls
+  (Hcalls) and Command/Response Queue (CRQ) commands.
+
+properties:
+  compatible:
+    enum:
+      - IBM,vtpm
+      - IBM,vtpm20
+
+  device_type:
+    description:
+      type of virtual device
+
+  reg:
+    maxItems: 1
+
+  'ibm,#dma-address-cells':
+    description:
+      number of cells that are used to encode the physical address field of
+      dma-window properties
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  'ibm,#dma-size-cells':
+    description:
+      number of cells that are used to encode the size field of
+      dma-window properties
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  ibm,my-dma-window:
+    description:
+      DMA window associated with this virtual I/O Adapter
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+
+  ibm,my-drc-index:
+    description:
+      integer index for the connector between the device and its parent;
+      present only if Dynamic Reconfiguration (DR) Connector is enabled
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  ibm,loc-code:
+    description:
+      unique and persistent location code associated with this virtual
+      I/O Adapter
+    $ref: /schemas/types.yaml#/definitions/string
+
+required:
+  - compatible
+  - device_type
+  - reg
+  - interrupts
+  - ibm,#dma-address-cells
+  - ibm,#dma-size-cells
+  - ibm,my-dma-window
+  - ibm,my-drc-index
+  - ibm,loc-code
+  - linux,sml-base
+  - linux,sml-size
+
+allOf:
+  - $ref: tpm-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        vtpm@30000003 {
+            compatible = "IBM,vtpm";
+            device_type = "IBM,vtpm";
+            reg = <0x30000003>;
+            interrupts = <0xa0003 0x0>;
+            ibm,#dma-address-cells = <0x2>;
+            ibm,#dma-size-cells = <0x2>;
+            ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
+            ibm,my-drc-index = <0x30000003>;
+            ibm,loc-code = "U8286.41A.10082DV-V3-C3";
+            linux,sml-base = <0xc60e 0x0>;
+            linux,sml-size = <0xbce10200>;
+        };
+    };