On Thu, Aug 24, 2017 at 9:23 PM Markus Armbruster <arm...@redhat.com> wrote:
> Sadly, we don't have a TPM maintainer, not even a MAINTAINERS entry. > Create one, and mark it orphaned. > > This is also proposed in: http://patchew.org/QEMU/20170728053610.15770-1-f4...@amsat.org/ Stefan Berger, any chance you declare yourself a TPM maintainer? Signed-off-by: Markus Armbruster <arm...@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- > MAINTAINERS | 8 ++++ > Makefile | 1 + > qapi-schema.json | 132 > +---------------------------------------------------- > qapi/tpm.json | 137 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 147 insertions(+), 131 deletions(-) > create mode 100644 qapi/tpm.json > > diff --git a/MAINTAINERS b/MAINTAINERS > index 8cebd79..5ec945c 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1486,6 +1486,14 @@ F: scripts/tracetool/ > F: docs/tracing.txt > T: git git://github.com/stefanha/qemu.git tracing > > +TPM > +S: Orphan > +F: tpm.c > +F: hw/tpm/* > +F: include/hw/acpi/tpm.h > +F: include/sysemu/tpm* > +F: qapi/tpm.json > + > Checkpatch > S: Odd Fixes > F: scripts/checkpatch.pl > diff --git a/Makefile b/Makefile > index ea6de37..3dde210 100644 > --- a/Makefile > +++ b/Makefile > @@ -418,6 +418,7 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json > $(SRC_PATH)/qapi/common.json \ > $(SRC_PATH)/qapi/rocker.json \ > $(SRC_PATH)/qapi/run-state.json \ > $(SRC_PATH)/qapi/sockets.json \ > + $(SRC_PATH)/qapi/tpm.json \ > $(SRC_PATH)/qapi/trace.json \ > $(SRC_PATH)/qapi/transaction.json \ > $(SRC_PATH)/qapi/ui.json > diff --git a/qapi-schema.json b/qapi-schema.json > index 4108ef0..0ad4e02 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -86,6 +86,7 @@ > { 'include': 'qapi/char.json' } > { 'include': 'qapi/net.json' } > { 'include': 'qapi/rocker.json' } > +{ 'include': 'qapi/tpm.json' } > { 'include': 'qapi/ui.json' } > { 'include': 'qapi/migration.json' } > { 'include': 'qapi/transaction.json' } > @@ -2213,137 +2214,6 @@ > { 'command': 'query-target', 'returns': 'TargetInfo' } > > ## > -# @TpmModel: > -# > -# An enumeration of TPM models > -# > -# @tpm-tis: TPM TIS model > -# > -# Since: 1.5 > -## > -{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] } > - > -## > -# @query-tpm-models: > -# > -# Return a list of supported TPM models > -# > -# Returns: a list of TpmModel > -# > -# Since: 1.5 > -# > -# Example: > -# > -# -> { "execute": "query-tpm-models" } > -# <- { "return": [ "tpm-tis" ] } > -# > -## > -{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] } > - > -## > -# @TpmType: > -# > -# An enumeration of TPM types > -# > -# @passthrough: TPM passthrough type > -# > -# Since: 1.5 > -## > -{ 'enum': 'TpmType', 'data': [ 'passthrough' ] } > - > -## > -# @query-tpm-types: > -# > -# Return a list of supported TPM types > -# > -# Returns: a list of TpmType > -# > -# Since: 1.5 > -# > -# Example: > -# > -# -> { "execute": "query-tpm-types" } > -# <- { "return": [ "passthrough" ] } > -# > -## > -{ 'command': 'query-tpm-types', 'returns': ['TpmType'] } > - > -## > -# @TPMPassthroughOptions: > -# > -# Information about the TPM passthrough type > -# > -# @path: string describing the path used for accessing the TPM device > -# > -# @cancel-path: string showing the TPM's sysfs cancel file > -# for cancellation of TPM commands while they are executing > -# > -# Since: 1.5 > -## > -{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str', > - '*cancel-path' : 'str'} } > - > -## > -# @TpmTypeOptions: > -# > -# A union referencing different TPM backend types' configuration options > -# > -# @type: 'passthrough' The configuration options for the TPM passthrough > type > -# > -# Since: 1.5 > -## > -{ 'union': 'TpmTypeOptions', > - 'data': { 'passthrough' : 'TPMPassthroughOptions' } } > - > -## > -# @TPMInfo: > -# > -# Information about the TPM > -# > -# @id: The Id of the TPM > -# > -# @model: The TPM frontend model > -# > -# @options: The TPM (backend) type configuration options > -# > -# Since: 1.5 > -## > -{ 'struct': 'TPMInfo', > - 'data': {'id': 'str', > - 'model': 'TpmModel', > - 'options': 'TpmTypeOptions' } } > - > -## > -# @query-tpm: > -# > -# Return information about the TPM device > -# > -# Returns: @TPMInfo on success > -# > -# Since: 1.5 > -# > -# Example: > -# > -# -> { "execute": "query-tpm" } > -# <- { "return": > -# [ > -# { "model": "tpm-tis", > -# "options": > -# { "type": "passthrough", > -# "data": > -# { "cancel-path": "/sys/class/misc/tpm0/device/cancel", > -# "path": "/dev/tpm0" > -# } > -# }, > -# "id": "tpm0" > -# } > -# ] > -# } > -# > -## > -{ 'command': 'query-tpm', 'returns': ['TPMInfo'] } > - > -## > # @AcpiTableOptions: > # > # Specify an ACPI table on the command line to load. > diff --git a/qapi/tpm.json b/qapi/tpm.json > new file mode 100644 > index 0000000..e8b2d8d > --- /dev/null > +++ b/qapi/tpm.json > @@ -0,0 +1,137 @@ > +# -*- Mode: Python -*- > +# > + > +## > +# = TPM (trusted platform module) devices > +## > + > +## > +# @TpmModel: > +# > +# An enumeration of TPM models > +# > +# @tpm-tis: TPM TIS model > +# > +# Since: 1.5 > +## > +{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] } > + > +## > +# @query-tpm-models: > +# > +# Return a list of supported TPM models > +# > +# Returns: a list of TpmModel > +# > +# Since: 1.5 > +# > +# Example: > +# > +# -> { "execute": "query-tpm-models" } > +# <- { "return": [ "tpm-tis" ] } > +# > +## > +{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] } > + > +## > +# @TpmType: > +# > +# An enumeration of TPM types > +# > +# @passthrough: TPM passthrough type > +# > +# Since: 1.5 > +## > +{ 'enum': 'TpmType', 'data': [ 'passthrough' ] } > + > +## > +# @query-tpm-types: > +# > +# Return a list of supported TPM types > +# > +# Returns: a list of TpmType > +# > +# Since: 1.5 > +# > +# Example: > +# > +# -> { "execute": "query-tpm-types" } > +# <- { "return": [ "passthrough" ] } > +# > +## > +{ 'command': 'query-tpm-types', 'returns': ['TpmType'] } > + > +## > +# @TPMPassthroughOptions: > +# > +# Information about the TPM passthrough type > +# > +# @path: string describing the path used for accessing the TPM device > +# > +# @cancel-path: string showing the TPM's sysfs cancel file > +# for cancellation of TPM commands while they are executing > +# > +# Since: 1.5 > +## > +{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str', > + '*cancel-path' : 'str'} } > + > +## > +# @TpmTypeOptions: > +# > +# A union referencing different TPM backend types' configuration options > +# > +# @type: 'passthrough' The configuration options for the TPM passthrough > type > +# > +# Since: 1.5 > +## > +{ 'union': 'TpmTypeOptions', > + 'data': { 'passthrough' : 'TPMPassthroughOptions' } } > + > +## > +# @TPMInfo: > +# > +# Information about the TPM > +# > +# @id: The Id of the TPM > +# > +# @model: The TPM frontend model > +# > +# @options: The TPM (backend) type configuration options > +# > +# Since: 1.5 > +## > +{ 'struct': 'TPMInfo', > + 'data': {'id': 'str', > + 'model': 'TpmModel', > + 'options': 'TpmTypeOptions' } } > + > +## > +# @query-tpm: > +# > +# Return information about the TPM device > +# > +# Returns: @TPMInfo on success > +# > +# Since: 1.5 > +# > +# Example: > +# > +# -> { "execute": "query-tpm" } > +# <- { "return": > +# [ > +# { "model": "tpm-tis", > +# "options": > +# { "type": "passthrough", > +# "data": > +# { "cancel-path": "/sys/class/misc/tpm0/device/cancel", > +# "path": "/dev/tpm0" > +# } > +# }, > +# "id": "tpm0" > +# } > +# ] > +# } > +# > +## > +{ 'command': 'query-tpm', 'returns': ['TPMInfo'] } > -- > 2.7.5 > > > -- Marc-André Lureau