Commit 3f4cc70d authored by Lukas Wunner's avatar Lukas Wunner Committed by Rob Herring
Browse files

dt-bindings: tpm: Document Microsoft fTPM bindings

A driver for Microsoft's firmware-based Trusted Platform Module (fTPM)
was merged with commit 09e57483 ("tpm/tpm_ftpm_tee: A driver for
firmware TPM running inside TEE"), but its devicetree bindings were not.

This is the only remaining undocumented compatible string for a TPM,
so add a DT schema based on the patch linked below.

Link: https://lore.kernel.org/all/20190409184958.7476-2-sashal@kernel.org/


Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/99523409eb5aec9276055ff358ae6f2ceb10be6d.1702806810.git.lukas@wunner.de


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent cd6366c0
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/tpm/microsoft,ftpm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Microsoft firmware-based Trusted Platform Module (fTPM)

maintainers:
  - Thirupathaiah Annapureddy <thiruan@microsoft.com>
  - Sasha Levin <sashal@kernel.org>

description: |
  Commodity CPU architectures, such as ARM and Intel CPUs, have started to
  offer trusted computing features in their CPUs aimed at displacing dedicated
  trusted hardware.  Unfortunately, these CPU architectures raise serious
  challenges to building trusted systems because they omit providing secure
  resources outside the CPU perimeter.

  Microsoft's firmware-based TPM 2.0 (fTPM) leverages ARM TrustZone to overcome
  these challenges and provide software with security guarantees similar to
  those of dedicated trusted hardware.

  https://www.microsoft.com/en-us/research/publication/ftpm-software-implementation-tpm-chip/
  https://github.com/Microsoft/ms-tpm-20-ref/tree/main/Samples/ARM32-FirmwareTPM

properties:
  compatible:
    const: microsoft,ftpm

required:
  - compatible
  - linux,sml-base
  - linux,sml-size

allOf:
  - $ref: tpm-common.yaml#

unevaluatedProperties: false

examples:
  - |
    tpm {
        compatible = "microsoft,ftpm";
        linux,sml-base = <0x0 0xc0000000>;
        linux,sml-size = <0x10000>;
    };