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 # @tpm-crb: TPM CRB model (since 2.12) 15 # @tpm-spapr: TPM SPAPR model (since 5.0) 16 # 17 # Since: 1.5 18 ## 19 { 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ] } 20 ## 21 # @query-tpm-models: 22 # 23 # Return a list of supported TPM models 24 # 25 # Returns: a list of TpmModel 26 # 27 # Since: 1.5 28 # 29 # Example: 30 # 31 # -> { "execute": "query-tpm-models" } 32 # <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] } 33 # 34 ## 35 { 'command': 'query-tpm-models', 'returns': ['TpmModel'] } 36 37 ## 38 # @TpmType: 39 # 40 # An enumeration of TPM types 41 # 42 # @passthrough: TPM passthrough type 43 # @emulator: Software Emulator TPM type 44 # Since: 2.11 45 # 46 # Since: 1.5 47 ## 48 { 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ] } 49 50 ## 51 # @query-tpm-types: 52 # 53 # Return a list of supported TPM types 54 # 55 # Returns: a list of TpmType 56 # 57 # Since: 1.5 58 # 59 # Example: 60 # 61 # -> { "execute": "query-tpm-types" } 62 # <- { "return": [ "passthrough", "emulator" ] } 63 # 64 ## 65 { 'command': 'query-tpm-types', 'returns': ['TpmType'] } 66 67 ## 68 # @TPMPassthroughOptions: 69 # 70 # Information about the TPM passthrough type 71 # 72 # @path: string describing the path used for accessing the TPM device 73 # 74 # @cancel-path: string showing the TPM's sysfs cancel file 75 # for cancellation of TPM commands while they are executing 76 # 77 # Since: 1.5 78 ## 79 { 'struct': 'TPMPassthroughOptions', 80 'data': { '*path': 'str', 81 '*cancel-path': 'str' } } 82 83 ## 84 # @TPMEmulatorOptions: 85 # 86 # Information about the TPM emulator type 87 # 88 # @chardev: Name of a unix socket chardev 89 # 90 # Since: 2.11 91 ## 92 { 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' } } 93 94 ## 95 # @TpmTypeOptions: 96 # 97 # A union referencing different TPM backend types' configuration options 98 # 99 # @type: 'passthrough' The configuration options for the TPM passthrough type 100 # 'emulator' The configuration options for TPM emulator backend type 101 # 102 # Since: 1.5 103 ## 104 { 'union': 'TpmTypeOptions', 105 'data': { 'passthrough' : 'TPMPassthroughOptions', 106 'emulator': 'TPMEmulatorOptions' } } 107 108 ## 109 # @TPMInfo: 110 # 111 # Information about the TPM 112 # 113 # @id: The Id of the TPM 114 # 115 # @model: The TPM frontend model 116 # 117 # @options: The TPM (backend) type configuration options 118 # 119 # Since: 1.5 120 ## 121 { 'struct': 'TPMInfo', 122 'data': {'id': 'str', 123 'model': 'TpmModel', 124 'options': 'TpmTypeOptions' } } 125 126 ## 127 # @query-tpm: 128 # 129 # Return information about the TPM device 130 # 131 # Returns: @TPMInfo on success 132 # 133 # Since: 1.5 134 # 135 # Example: 136 # 137 # -> { "execute": "query-tpm" } 138 # <- { "return": 139 # [ 140 # { "model": "tpm-tis", 141 # "options": 142 # { "type": "passthrough", 143 # "data": 144 # { "cancel-path": "/sys/class/misc/tpm0/device/cancel", 145 # "path": "/dev/tpm0" 146 # } 147 # }, 148 # "id": "tpm0" 149 # } 150 # ] 151 # } 152 # 153 ## 154 { 'command': 'query-tpm', 'returns': ['TPMInfo'] } 155