On Tue, 21 Nov 2023 10:48:41 +0100, Lukas Wunner wrote:
> A significant number of Trusted Platform Modules conform to the "TIS"
> specification published by the Trusted Computing Group ("TCG PC Client
> Specific TPM Interface Specification"). These chips typically use an
> SPI, I²C or LPC bus as transport (via MMIO in the latter case). Some
> of them even support multiple of those buses (selectable through a
> config strap) or the same chip is available in multiple SKUs, each with
> a different bus interface.
>
> The devicetree bindings for these TPMs have not been converted to DT
> schema yet and are spread out across 3 generic files and 3 chip-specific
> files. A few TPM compatible strings were added to trivial-devices.yaml
> even though additional properties are documented in the plaintext
> bindings.
>
> Consolidate the devicetree bindings into 3 files, one per bus.
>
> Move common properties to a separate tpm-common.yaml.
>
> Document compatible strings which are supported by the TPM TIS driver
> but were neglected to be added to the devicetree bindings.
>
> Document the memory-region property recently introduced by commit
> 1e2714bb83fc ("tpm: Add reserved memory event log").
>
> Signed-off-by: Lukas Wunner <[email protected]>
> ---
> .../bindings/security/tpm/google,cr50.txt | 19 ----
> .../bindings/security/tpm/st33zp24-i2c.txt | 34 ------
> .../bindings/security/tpm/st33zp24-spi.txt | 32 ------
> .../bindings/security/tpm/tpm-i2c.txt | 26 -----
> .../bindings/security/tpm/tpm_tis_mmio.txt | 25 ----
> .../bindings/security/tpm/tpm_tis_spi.txt | 23 ----
> .../bindings/tpm/tcg,tpm-tis-i2c.yaml | 107 ++++++++++++++++++
> .../bindings/tpm/tcg,tpm-tis-mmio.yaml | 50 ++++++++
> .../bindings/tpm/tcg,tpm_tis-spi.yaml | 88 ++++++++++++++
> .../devicetree/bindings/tpm/tpm-common.yaml | 56 +++++++++
> .../devicetree/bindings/trivial-devices.yaml | 16 ---
> 11 files changed, 301 insertions(+), 175 deletions(-)
> delete mode 100644
> Documentation/devicetree/bindings/security/tpm/google,cr50.txt
> delete mode 100644
> Documentation/devicetree/bindings/security/tpm/st33zp24-i2c.txt
> delete mode 100644
> Documentation/devicetree/bindings/security/tpm/st33zp24-spi.txt
> delete mode 100644 Documentation/devicetree/bindings/security/tpm/tpm-i2c.txt
> delete mode 100644
> Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> delete mode 100644
> Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt
> create mode 100644 Documentation/devicetree/bindings/tpm/tcg,tpm-tis-i2c.yaml
> create mode 100644
> Documentation/devicetree/bindings/tpm/tcg,tpm-tis-mmio.yaml
> create mode 100644 Documentation/devicetree/bindings/tpm/tcg,tpm_tis-spi.yaml
> create mode 100644 Documentation/devicetree/bindings/tpm/tpm-common.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/tpm-common.yaml:
properties:oneOf: [{'memory-region': {'description': 'reserved memory
allocated for firmware event log', 'maxItems': 1}}, {'allOf':
[{'linux,sml-base': {'description': 'base address of reserved memory allocated
for firmware event log', '$ref':
'/schemas/types.yaml#/definitions/uint32-array', 'minItems': 2, 'maxItems':
2}}, {'linux,sml-size': {'description': 'size of reserved memory allocated for
firmware event log', '$ref': '/schemas/types.yaml#/definitions/uint32'}}]}] is
not of type 'object', 'boolean'
from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tpm-common.yaml:
properties: 'oneOf' should not be valid under {'$ref':
'#/definitions/json-schema-prop-names'}
hint: A json-schema keyword was found instead of a DT property name.
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tpm-common.yaml:
properties:oneOf: [{'memory-region': {'description': 'reserved memory
allocated for firmware event log', 'maxItems': 1}}, {'allOf':
[{'linux,sml-base': {'description': 'base address of reserved memory allocated
for firmware event log', '$ref':
'/schemas/types.yaml#/definitions/uint32-array', 'minItems': 2, 'maxItems':
2}}, {'linux,sml-size': {'description': 'size of reserved memory allocated for
firmware event log', '$ref': '/schemas/types.yaml#/definitions/uint32'}}]}] is
not of type 'object', 'boolean'
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tpm-common.yaml:
powered-while-suspended: missing type definition
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tcg,tpm_tis-spi.example.dtb:
tpm@0: compatible:1: 'tcg,tpm-tis-i2c' was expected
from schema $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tcg,tpm_tis-spi.example.dtb:
tpm@0: Unevaluated properties are not allowed ('compatible',
'spi-max-frequency' were unexpected)
from schema $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tcg,tpm_tis-spi.example.dtb:
tpm@0: Unevaluated properties are not allowed ('lpcpd-gpios' was unexpected)
from schema $id: http://devicetree.org/schemas/tpm/tcg,tpm_tis-spi.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tcg,tpm-tis-i2c.example.dtb:
tpm@57: Unevaluated properties are not allowed ('linux,sml-base',
'linux,sml-size' were unexpected)
from schema $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/tpm/tcg,tpm-tis-i2c.example.dtb:
tpm@13: Unevaluated properties are not allowed ('lpcpd-gpios' was unexpected)
from schema $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
doc reference errors (make refcheckdocs):
See
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/e83a43a67c96b4f2614f029666209cb408da8678.1700555862.git.lu...@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.