cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

tpm.json (3610B)


      1# -*- Mode: Python -*-
      2# vim: filetype=python
      3#
      4
      5##
      6# = TPM (trusted platform module) devices
      7##
      8
      9##
     10# @TpmModel:
     11#
     12# An enumeration of TPM models
     13#
     14# @tpm-tis: TPM TIS model
     15# @tpm-crb: TPM CRB model (since 2.12)
     16# @tpm-spapr: TPM SPAPR model (since 5.0)
     17#
     18# Since: 1.5
     19##
     20{ 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ],
     21  'if': 'CONFIG_TPM' }
     22
     23##
     24# @query-tpm-models:
     25#
     26# Return a list of supported TPM models
     27#
     28# Returns: a list of TpmModel
     29#
     30# Since: 1.5
     31#
     32# Example:
     33#
     34# -> { "execute": "query-tpm-models" }
     35# <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
     36#
     37##
     38{ 'command': 'query-tpm-models', 'returns': ['TpmModel'],
     39  'if': 'CONFIG_TPM' }
     40
     41##
     42# @TpmType:
     43#
     44# An enumeration of TPM types
     45#
     46# @passthrough: TPM passthrough type
     47# @emulator: Software Emulator TPM type
     48#            Since: 2.11
     49#
     50# Since: 1.5
     51##
     52{ 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ],
     53  'if': 'CONFIG_TPM' }
     54
     55##
     56# @query-tpm-types:
     57#
     58# Return a list of supported TPM types
     59#
     60# Returns: a list of TpmType
     61#
     62# Since: 1.5
     63#
     64# Example:
     65#
     66# -> { "execute": "query-tpm-types" }
     67# <- { "return": [ "passthrough", "emulator" ] }
     68#
     69##
     70{ 'command': 'query-tpm-types', 'returns': ['TpmType'],
     71  'if': 'CONFIG_TPM' }
     72
     73##
     74# @TPMPassthroughOptions:
     75#
     76# Information about the TPM passthrough type
     77#
     78# @path: string describing the path used for accessing the TPM device
     79#
     80# @cancel-path: string showing the TPM's sysfs cancel file
     81#               for cancellation of TPM commands while they are executing
     82#
     83# Since: 1.5
     84##
     85{ 'struct': 'TPMPassthroughOptions',
     86  'data': { '*path': 'str',
     87            '*cancel-path': 'str' },
     88  'if': 'CONFIG_TPM' }
     89
     90##
     91# @TPMEmulatorOptions:
     92#
     93# Information about the TPM emulator type
     94#
     95# @chardev: Name of a unix socket chardev
     96#
     97# Since: 2.11
     98##
     99{ 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' },
    100  'if': 'CONFIG_TPM' }
    101
    102##
    103# @TPMPassthroughOptionsWrapper:
    104#
    105# Since: 1.5
    106##
    107{ 'struct': 'TPMPassthroughOptionsWrapper',
    108  'data': { 'data': 'TPMPassthroughOptions' },
    109  'if': 'CONFIG_TPM' }
    110
    111##
    112# @TPMEmulatorOptionsWrapper:
    113#
    114# Since: 2.11
    115##
    116{ 'struct': 'TPMEmulatorOptionsWrapper',
    117  'data': { 'data': 'TPMEmulatorOptions' },
    118  'if': 'CONFIG_TPM' }
    119
    120##
    121# @TpmTypeOptions:
    122#
    123# A union referencing different TPM backend types' configuration options
    124#
    125# @type: - 'passthrough' The configuration options for the TPM passthrough type
    126#        - 'emulator' The configuration options for TPM emulator backend type
    127#
    128# Since: 1.5
    129##
    130{ 'union': 'TpmTypeOptions',
    131  'base': { 'type': 'TpmType' },
    132  'discriminator': 'type',
    133  'data': { 'passthrough' : 'TPMPassthroughOptionsWrapper',
    134            'emulator': 'TPMEmulatorOptionsWrapper' },
    135  'if': 'CONFIG_TPM' }
    136
    137##
    138# @TPMInfo:
    139#
    140# Information about the TPM
    141#
    142# @id: The Id of the TPM
    143#
    144# @model: The TPM frontend model
    145#
    146# @options: The TPM (backend) type configuration options
    147#
    148# Since: 1.5
    149##
    150{ 'struct': 'TPMInfo',
    151  'data': {'id': 'str',
    152           'model': 'TpmModel',
    153           'options': 'TpmTypeOptions' },
    154  'if': 'CONFIG_TPM' }
    155
    156##
    157# @query-tpm:
    158#
    159# Return information about the TPM device
    160#
    161# Returns: @TPMInfo on success
    162#
    163# Since: 1.5
    164#
    165# Example:
    166#
    167# -> { "execute": "query-tpm" }
    168# <- { "return":
    169#      [
    170#        { "model": "tpm-tis",
    171#          "options":
    172#            { "type": "passthrough",
    173#              "data":
    174#                { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
    175#                  "path": "/dev/tpm0"
    176#                }
    177#            },
    178#          "id": "tpm0"
    179#        }
    180#      ]
    181#    }
    182#
    183##
    184{ 'command': 'query-tpm', 'returns': ['TPMInfo'],
    185  'if': 'CONFIG_TPM' }