1/* 2 * TPM configuration 3 * 4 * Copyright (C) 2011-2013 IBM Corporation 5 * 6 * Authors: 7 * Stefan Berger <stefanb@us.ibm.com> 8 * 9 * This work is licensed under the terms of the GNU GPL, version 2 or later. 10 * See the COPYING file in the top-level directory. 11 */ 12#ifndef TPM_TPM_INT_H 13#define TPM_TPM_INT_H 14 15#define TPM_STANDARD_CMDLINE_OPTS \ 16 { \ 17 .name = "type", \ 18 .type = QEMU_OPT_STRING, \ 19 .help = "Type of TPM backend", \ 20 } 21 22struct tpm_req_hdr { 23 uint16_t tag; 24 uint32_t len; 25 uint32_t ordinal; 26} QEMU_PACKED; 27 28struct tpm_resp_hdr { 29 uint16_t tag; 30 uint32_t len; 31 uint32_t errcode; 32} QEMU_PACKED; 33 34#define TPM_TAG_RQU_COMMAND 0xc1 35#define TPM_TAG_RQU_AUTH1_COMMAND 0xc2 36#define TPM_TAG_RQU_AUTH2_COMMAND 0xc3 37 38#define TPM_TAG_RSP_COMMAND 0xc4 39#define TPM_TAG_RSP_AUTH1_COMMAND 0xc5 40#define TPM_TAG_RSP_AUTH2_COMMAND 0xc6 41 42#define TPM_BAD_PARAMETER 3 43#define TPM_FAIL 9 44#define TPM_KEYNOTFOUND 13 45#define TPM_BAD_PARAM_SIZE 25 46#define TPM_ENCRYPT_ERROR 32 47#define TPM_DECRYPT_ERROR 33 48#define TPM_BAD_KEY_PROPERTY 40 49#define TPM_BAD_MODE 44 50#define TPM_BAD_VERSION 46 51#define TPM_BAD_LOCALITY 61 52 53#define TPM_ORD_ContinueSelfTest 0x53 54#define TPM_ORD_GetTicks 0xf1 55#define TPM_ORD_GetCapability 0x65 56 57#define TPM_CAP_PROPERTY 0x05 58 59#define TPM_CAP_PROP_INPUT_BUFFER 0x124 60 61/* TPM2 defines */ 62#define TPM2_ST_NO_SESSIONS 0x8001 63 64#define TPM2_CC_ReadClock 0x00000181 65#define TPM2_CC_GetCapability 0x0000017a 66 67#define TPM2_CAP_TPM_PROPERTIES 0x6 68 69#define TPM2_PT_MAX_COMMAND_SIZE 0x11e 70 71#define TPM_RC_INSUFFICIENT 0x9a 72#define TPM_RC_FAILURE 0x101 73#define TPM_RC_LOCALITY 0x907 74 75#endif /* TPM_TPM_INT_H */ 76