xref: /linux/Documentation/devicetree/bindings/tpm/microsoft,ftpm.yaml (revision 06d07429858317ded2db7986113a9e0129cd599b)
1*3f4cc70dSLukas Wunner# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*3f4cc70dSLukas Wunner%YAML 1.2
3*3f4cc70dSLukas Wunner---
4*3f4cc70dSLukas Wunner$id: http://devicetree.org/schemas/tpm/microsoft,ftpm.yaml#
5*3f4cc70dSLukas Wunner$schema: http://devicetree.org/meta-schemas/core.yaml#
6*3f4cc70dSLukas Wunner
7*3f4cc70dSLukas Wunnertitle: Microsoft firmware-based Trusted Platform Module (fTPM)
8*3f4cc70dSLukas Wunner
9*3f4cc70dSLukas Wunnermaintainers:
10*3f4cc70dSLukas Wunner  - Thirupathaiah Annapureddy <thiruan@microsoft.com>
11*3f4cc70dSLukas Wunner  - Sasha Levin <sashal@kernel.org>
12*3f4cc70dSLukas Wunner
13*3f4cc70dSLukas Wunnerdescription: |
14*3f4cc70dSLukas Wunner  Commodity CPU architectures, such as ARM and Intel CPUs, have started to
15*3f4cc70dSLukas Wunner  offer trusted computing features in their CPUs aimed at displacing dedicated
16*3f4cc70dSLukas Wunner  trusted hardware.  Unfortunately, these CPU architectures raise serious
17*3f4cc70dSLukas Wunner  challenges to building trusted systems because they omit providing secure
18*3f4cc70dSLukas Wunner  resources outside the CPU perimeter.
19*3f4cc70dSLukas Wunner
20*3f4cc70dSLukas Wunner  Microsoft's firmware-based TPM 2.0 (fTPM) leverages ARM TrustZone to overcome
21*3f4cc70dSLukas Wunner  these challenges and provide software with security guarantees similar to
22*3f4cc70dSLukas Wunner  those of dedicated trusted hardware.
23*3f4cc70dSLukas Wunner
24*3f4cc70dSLukas Wunner  https://www.microsoft.com/en-us/research/publication/ftpm-software-implementation-tpm-chip/
25*3f4cc70dSLukas Wunner  https://github.com/Microsoft/ms-tpm-20-ref/tree/main/Samples/ARM32-FirmwareTPM
26*3f4cc70dSLukas Wunner
27*3f4cc70dSLukas Wunnerproperties:
28*3f4cc70dSLukas Wunner  compatible:
29*3f4cc70dSLukas Wunner    const: microsoft,ftpm
30*3f4cc70dSLukas Wunner
31*3f4cc70dSLukas Wunnerrequired:
32*3f4cc70dSLukas Wunner  - compatible
33*3f4cc70dSLukas Wunner  - linux,sml-base
34*3f4cc70dSLukas Wunner  - linux,sml-size
35*3f4cc70dSLukas Wunner
36*3f4cc70dSLukas WunnerallOf:
37*3f4cc70dSLukas Wunner  - $ref: tpm-common.yaml#
38*3f4cc70dSLukas Wunner
39*3f4cc70dSLukas WunnerunevaluatedProperties: false
40*3f4cc70dSLukas Wunner
41*3f4cc70dSLukas Wunnerexamples:
42*3f4cc70dSLukas Wunner  - |
43*3f4cc70dSLukas Wunner    tpm {
44*3f4cc70dSLukas Wunner        compatible = "microsoft,ftpm";
45*3f4cc70dSLukas Wunner        linux,sml-base = <0x0 0xc0000000>;
46*3f4cc70dSLukas Wunner        linux,sml-size = <0x10000>;
47*3f4cc70dSLukas Wunner    };
48