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