mbox series

[0/4] Tegra TPM driver with hw flow control

Message ID 20230202161750.21210-1-kyarlagadda@nvidia.com
Headers show
Series Tegra TPM driver with hw flow control | expand

Message

Krishna Yarlagadda Feb. 2, 2023, 4:17 p.m. UTC
Tegra234 and Tegra241 chips have QSPI controller that supports TCG
PC Client Specific TPM Interface Specification (TIS) flow control.
Since the controller only supports half duplex, sw wait polling
(flow control using full duplex transfers) method implemented in
tpm_tis_spi_main.c does not suffice.
Added extended driver to disable sw flow control and send
all transfers in single message. Flow control is handled by hardware.

Krishna Yarlagadda (4):
  dt-bindings: tpm: Add compatible for Tegra TPM
  tpm: tegra: Support SPI tpm wait state detect
  spi: dt-bindings: Add Tegra TPM wait polling flag
  spi: tegra210-quad: Enable TPM wait polling

 .../security/tpm/nvidia,tegra-tpm-spi.txt     |  14 ++
 ...nvidia,tegra210-quad-peripheral-props.yaml |   6 +
 drivers/char/tpm/Makefile                     |   1 +
 drivers/char/tpm/tpm_tis_spi.h                |   1 +
 drivers/char/tpm/tpm_tis_spi_main.c           |   4 +-
 drivers/char/tpm/tpm_tis_spi_tegra.c          | 123 ++++++++++++++++++
 drivers/spi/spi-tegra210-quad.c               |  16 +++
 7 files changed, 164 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/security/tpm/nvidia,tegra-tpm-spi.txt
 create mode 100644 drivers/char/tpm/tpm_tis_spi_tegra.c

Comments

Krzysztof Kozlowski Feb. 2, 2023, 4:25 p.m. UTC | #1
On 02/02/2023 17:17, Krishna Yarlagadda wrote:
> Tegra234 and Tegra241 devices have QSPI controller that supports TPM
> devices. Since the controller only supports half duplex, sw wait polling
> method implemented in tpm_tis_spi does not suffice. Wait polling as per
> protocol is a hardware feature.
> 
> Add compatible for Tegra TPM driver with hardware flow control.

Sorry, new bindings only in DT schema.

see Documentation/devicetree/bindings/writing-schema.rst for instructions.

Best regards,
Krzysztof
Krzysztof Kozlowski Feb. 2, 2023, 4:26 p.m. UTC | #2
On 02/02/2023 17:17, Krishna Yarlagadda wrote:
> Add "nvidia,wait-polling" flag to enable TCG TIS hardware flow control.
> 
> Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com>
> ---
>  .../bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml
> index 2c3cada75339..25150d55603e 100644
> --- a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml
> +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml
> @@ -28,5 +28,11 @@ properties:
>      $ref: /schemas/types.yaml#/definitions/uint32
>      minimum: 0
>      maximum: 255
> +properties:
> +  nvidia,wait-polling:
> +    description:
> +      Enable TPM wait polling feature for QSPI as specified in TCG PC Client
> +      Specific TPM Interface Specification (TIS).
> +    $ref: /schemas/types.yaml#/definitions/flag

Does not look like you tested the bindings. Please run `make
dt_binding_check` (see
Documentation/devicetree/bindings/writing-schema.rst for instructions).

Best regards,
Krzysztof
Jarkko Sakkinen Feb. 8, 2023, 2:16 a.m. UTC | #3
On Thu, Feb 02, 2023 at 09:47:46PM +0530, Krishna Yarlagadda wrote:
> Tegra234 and Tegra241 chips have QSPI controller that supports TCG
> PC Client Specific TPM Interface Specification (TIS) flow control.
> Since the controller only supports half duplex, sw wait polling
> (flow control using full duplex transfers) method implemented in
> tpm_tis_spi_main.c does not suffice.
> Added extended driver to disable sw flow control and send

s/Added/Add/

What is "extended driver"?

> all transfers in single message. Flow control is handled by hardware.
> 
> Krishna Yarlagadda (4):
>   dt-bindings: tpm: Add compatible for Tegra TPM
>   tpm: tegra: Support SPI tpm wait state detect
>   spi: dt-bindings: Add Tegra TPM wait polling flag
>   spi: tegra210-quad: Enable TPM wait polling
> 
>  .../security/tpm/nvidia,tegra-tpm-spi.txt     |  14 ++
>  ...nvidia,tegra210-quad-peripheral-props.yaml |   6 +
>  drivers/char/tpm/Makefile                     |   1 +
>  drivers/char/tpm/tpm_tis_spi.h                |   1 +
>  drivers/char/tpm/tpm_tis_spi_main.c           |   4 +-
>  drivers/char/tpm/tpm_tis_spi_tegra.c          | 123 ++++++++++++++++++
>  drivers/spi/spi-tegra210-quad.c               |  16 +++
>  7 files changed, 164 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/security/tpm/nvidia,tegra-tpm-spi.txt
>  create mode 100644 drivers/char/tpm/tpm_tis_spi_tegra.c
> 
> -- 
> 2.17.1
> 

BR, Jarkko