xref: /freebsd/sys/contrib/device-tree/Bindings/tpm/ibm,vtpm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8d13bc63SEmmanuel Vadot%YAML 1.2
3*8d13bc63SEmmanuel Vadot---
4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8d13bc63SEmmanuel Vadot
7*8d13bc63SEmmanuel Vadottitle: IBM Virtual Trusted Platform Module (vTPM)
8*8d13bc63SEmmanuel Vadot
9*8d13bc63SEmmanuel Vadotmaintainers:
10*8d13bc63SEmmanuel Vadot  - Nayna Jain <nayna@linux.ibm.com>
11*8d13bc63SEmmanuel Vadot
12*8d13bc63SEmmanuel Vadotdescription: |
13*8d13bc63SEmmanuel Vadot  Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
14*8d13bc63SEmmanuel Vadot  It is supported through the adjunct partition with firmware release 740
15*8d13bc63SEmmanuel Vadot  or higher.  With vTPM support, each lpar is able to have its own vTPM
16*8d13bc63SEmmanuel Vadot  without the physical TPM hardware.  The TPM functionality is provided by
17*8d13bc63SEmmanuel Vadot  communicating with the vTPM adjunct partition through Hypervisor calls
18*8d13bc63SEmmanuel Vadot  (Hcalls) and Command/Response Queue (CRQ) commands.
19*8d13bc63SEmmanuel Vadot
20*8d13bc63SEmmanuel Vadotproperties:
21*8d13bc63SEmmanuel Vadot  compatible:
22*8d13bc63SEmmanuel Vadot    enum:
23*8d13bc63SEmmanuel Vadot      - IBM,vtpm
24*8d13bc63SEmmanuel Vadot      - IBM,vtpm20
25*8d13bc63SEmmanuel Vadot
26*8d13bc63SEmmanuel Vadot  device_type:
27*8d13bc63SEmmanuel Vadot    description:
28*8d13bc63SEmmanuel Vadot      type of virtual device
29*8d13bc63SEmmanuel Vadot    enum:
30*8d13bc63SEmmanuel Vadot      - IBM,vtpm
31*8d13bc63SEmmanuel Vadot      - IBM,vtpm20
32*8d13bc63SEmmanuel Vadot
33*8d13bc63SEmmanuel Vadot  reg:
34*8d13bc63SEmmanuel Vadot    maxItems: 1
35*8d13bc63SEmmanuel Vadot
36*8d13bc63SEmmanuel Vadot  'ibm,#dma-address-cells':
37*8d13bc63SEmmanuel Vadot    description:
38*8d13bc63SEmmanuel Vadot      number of cells that are used to encode the physical address field of
39*8d13bc63SEmmanuel Vadot      dma-window properties
40*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
41*8d13bc63SEmmanuel Vadot
42*8d13bc63SEmmanuel Vadot  'ibm,#dma-size-cells':
43*8d13bc63SEmmanuel Vadot    description:
44*8d13bc63SEmmanuel Vadot      number of cells that are used to encode the size field of
45*8d13bc63SEmmanuel Vadot      dma-window properties
46*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
47*8d13bc63SEmmanuel Vadot
48*8d13bc63SEmmanuel Vadot  ibm,my-dma-window:
49*8d13bc63SEmmanuel Vadot    description:
50*8d13bc63SEmmanuel Vadot      DMA window associated with this virtual I/O Adapter
51*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
52*8d13bc63SEmmanuel Vadot    minItems: 5
53*8d13bc63SEmmanuel Vadot    maxItems: 5
54*8d13bc63SEmmanuel Vadot
55*8d13bc63SEmmanuel Vadot  ibm,my-drc-index:
56*8d13bc63SEmmanuel Vadot    description:
57*8d13bc63SEmmanuel Vadot      integer index for the connector between the device and its parent;
58*8d13bc63SEmmanuel Vadot      present only if Dynamic Reconfiguration (DR) Connector is enabled
59*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
60*8d13bc63SEmmanuel Vadot
61*8d13bc63SEmmanuel Vadot  ibm,loc-code:
62*8d13bc63SEmmanuel Vadot    description:
63*8d13bc63SEmmanuel Vadot      unique and persistent location code associated with this virtual
64*8d13bc63SEmmanuel Vadot      I/O Adapter
65*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
66*8d13bc63SEmmanuel Vadot
67*8d13bc63SEmmanuel Vadotrequired:
68*8d13bc63SEmmanuel Vadot  - compatible
69*8d13bc63SEmmanuel Vadot  - device_type
70*8d13bc63SEmmanuel Vadot  - reg
71*8d13bc63SEmmanuel Vadot  - interrupts
72*8d13bc63SEmmanuel Vadot  - ibm,#dma-address-cells
73*8d13bc63SEmmanuel Vadot  - ibm,#dma-size-cells
74*8d13bc63SEmmanuel Vadot  - ibm,my-dma-window
75*8d13bc63SEmmanuel Vadot  - ibm,my-drc-index
76*8d13bc63SEmmanuel Vadot  - ibm,loc-code
77*8d13bc63SEmmanuel Vadot  - linux,sml-base
78*8d13bc63SEmmanuel Vadot  - linux,sml-size
79*8d13bc63SEmmanuel Vadot
80*8d13bc63SEmmanuel VadotallOf:
81*8d13bc63SEmmanuel Vadot  - $ref: tpm-common.yaml#
82*8d13bc63SEmmanuel Vadot
83*8d13bc63SEmmanuel VadotunevaluatedProperties: false
84*8d13bc63SEmmanuel Vadot
85*8d13bc63SEmmanuel Vadotexamples:
86*8d13bc63SEmmanuel Vadot  - |
87*8d13bc63SEmmanuel Vadot    soc {
88*8d13bc63SEmmanuel Vadot        #address-cells = <1>;
89*8d13bc63SEmmanuel Vadot        #size-cells = <0>;
90*8d13bc63SEmmanuel Vadot
91*8d13bc63SEmmanuel Vadot        tpm@30000003 {
92*8d13bc63SEmmanuel Vadot            compatible = "IBM,vtpm";
93*8d13bc63SEmmanuel Vadot            device_type = "IBM,vtpm";
94*8d13bc63SEmmanuel Vadot            reg = <0x30000003>;
95*8d13bc63SEmmanuel Vadot            interrupts = <0xa0003 0x0>;
96*8d13bc63SEmmanuel Vadot            ibm,#dma-address-cells = <0x2>;
97*8d13bc63SEmmanuel Vadot            ibm,#dma-size-cells = <0x2>;
98*8d13bc63SEmmanuel Vadot            ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
99*8d13bc63SEmmanuel Vadot            ibm,my-drc-index = <0x30000003>;
100*8d13bc63SEmmanuel Vadot            ibm,loc-code = "U8286.41A.10082DV-V3-C3";
101*8d13bc63SEmmanuel Vadot            linux,sml-base = <0xc60e 0x0>;
102*8d13bc63SEmmanuel Vadot            linux,sml-size = <0xbce10200>;
103*8d13bc63SEmmanuel Vadot        };
104*8d13bc63SEmmanuel Vadot    };
105