xref: /openbmc/qemu/qapi/tpm.json (revision 04e3aabd)
1# -*- Mode: Python -*-
2#
3
4##
5# = TPM (trusted platform module) devices
6##
7
8##
9# @TpmModel:
10#
11# An enumeration of TPM models
12#
13# @tpm-tis: TPM TIS model
14#
15# Since: 1.5
16##
17{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] }
18
19##
20# @query-tpm-models:
21#
22# Return a list of supported TPM models
23#
24# Returns: a list of TpmModel
25#
26# Since: 1.5
27#
28# Example:
29#
30# -> { "execute": "query-tpm-models" }
31# <- { "return": [ "tpm-tis" ] }
32#
33##
34{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] }
35
36##
37# @TpmType:
38#
39# An enumeration of TPM types
40#
41# @passthrough: TPM passthrough type
42#
43# Since: 1.5
44##
45{ 'enum': 'TpmType', 'data': [ 'passthrough' ] }
46
47##
48# @query-tpm-types:
49#
50# Return a list of supported TPM types
51#
52# Returns: a list of TpmType
53#
54# Since: 1.5
55#
56# Example:
57#
58# -> { "execute": "query-tpm-types" }
59# <- { "return": [ "passthrough" ] }
60#
61##
62{ 'command': 'query-tpm-types', 'returns': ['TpmType'] }
63
64##
65# @TPMPassthroughOptions:
66#
67# Information about the TPM passthrough type
68#
69# @path: string describing the path used for accessing the TPM device
70#
71# @cancel-path: string showing the TPM's sysfs cancel file
72#               for cancellation of TPM commands while they are executing
73#
74# Since: 1.5
75##
76{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str',
77                                             '*cancel-path' : 'str'} }
78
79##
80# @TpmTypeOptions:
81#
82# A union referencing different TPM backend types' configuration options
83#
84# @type: 'passthrough' The configuration options for the TPM passthrough type
85#
86# Since: 1.5
87##
88{ 'union': 'TpmTypeOptions',
89   'data': { 'passthrough' : 'TPMPassthroughOptions' } }
90
91##
92# @TPMInfo:
93#
94# Information about the TPM
95#
96# @id: The Id of the TPM
97#
98# @model: The TPM frontend model
99#
100# @options: The TPM (backend) type configuration options
101#
102# Since: 1.5
103##
104{ 'struct': 'TPMInfo',
105  'data': {'id': 'str',
106           'model': 'TpmModel',
107           'options': 'TpmTypeOptions' } }
108
109##
110# @query-tpm:
111#
112# Return information about the TPM device
113#
114# Returns: @TPMInfo on success
115#
116# Since: 1.5
117#
118# Example:
119#
120# -> { "execute": "query-tpm" }
121# <- { "return":
122#      [
123#        { "model": "tpm-tis",
124#          "options":
125#            { "type": "passthrough",
126#              "data":
127#                { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
128#                  "path": "/dev/tpm0"
129#                }
130#            },
131#          "id": "tpm0"
132#        }
133#      ]
134#    }
135#
136##
137{ 'command': 'query-tpm', 'returns': ['TPMInfo'] }
138