1 | /********************************************************************************/
|
---|
2 | /* */
|
---|
3 | /* NVRAM Constants */
|
---|
4 | /* Written by Ken Goldman */
|
---|
5 | /* IBM Thomas J. Watson Research Center */
|
---|
6 | /* $Id: tpm_nvram_const.h 4528 2011-03-29 22:16:28Z kgoldman $ */
|
---|
7 | /* */
|
---|
8 | /* (c) Copyright IBM Corporation 2006, 2010. */
|
---|
9 | /* */
|
---|
10 | /* All rights reserved. */
|
---|
11 | /* */
|
---|
12 | /* Redistribution and use in source and binary forms, with or without */
|
---|
13 | /* modification, are permitted provided that the following conditions are */
|
---|
14 | /* met: */
|
---|
15 | /* */
|
---|
16 | /* Redistributions of source code must retain the above copyright notice, */
|
---|
17 | /* this list of conditions and the following disclaimer. */
|
---|
18 | /* */
|
---|
19 | /* Redistributions in binary form must reproduce the above copyright */
|
---|
20 | /* notice, this list of conditions and the following disclaimer in the */
|
---|
21 | /* documentation and/or other materials provided with the distribution. */
|
---|
22 | /* */
|
---|
23 | /* Neither the names of the IBM Corporation nor the names of its */
|
---|
24 | /* contributors may be used to endorse or promote products derived from */
|
---|
25 | /* this software without specific prior written permission. */
|
---|
26 | /* */
|
---|
27 | /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
|
---|
28 | /* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
|
---|
29 | /* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR */
|
---|
30 | /* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
|
---|
31 | /* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
|
---|
32 | /* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
|
---|
33 | /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */
|
---|
34 | /* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY */
|
---|
35 | /* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
|
---|
36 | /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
|
---|
37 | /* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
---|
38 | /********************************************************************************/
|
---|
39 |
|
---|
40 | #ifndef TPM_NVRAM_CONST_H
|
---|
41 | #define TPM_NVRAM_CONST_H
|
---|
42 |
|
---|
43 | /*
|
---|
44 | These are implementation specific constants
|
---|
45 | */
|
---|
46 |
|
---|
47 | /*
|
---|
48 | TPMS_MAX defines the maximum number of TPM instances.
|
---|
49 | */
|
---|
50 |
|
---|
51 | #define TPMS_MAX 1
|
---|
52 |
|
---|
53 | /*
|
---|
54 | NVRAM storage directory path
|
---|
55 | */
|
---|
56 |
|
---|
57 |
|
---|
58 | #ifdef TPM_NV_DISK
|
---|
59 | /* TPM_NV_DISK uses the TPM_PATH environment variable */
|
---|
60 | #endif
|
---|
61 |
|
---|
62 | /* Defines the maximum size of the NV defined space, the NV indexes created by TPM_NV_DefineSpace.
|
---|
63 |
|
---|
64 | The PC Client requires 2048 bytes. There is at least (currently) 6 bytes of overhead, a tag and
|
---|
65 | a count.
|
---|
66 | */
|
---|
67 |
|
---|
68 | #ifndef TPM_MAX_NV_DEFINED_SIZE
|
---|
69 | #define TPM_MAX_NV_DEFINED_SIZE 2100
|
---|
70 | #endif
|
---|
71 |
|
---|
72 | /* TPM_MAX_NV_SPACE defines the maximum NV space for non-volatile state.
|
---|
73 |
|
---|
74 | It does not include the area used for TPM_SaveState.
|
---|
75 |
|
---|
76 | See TPM_OWNER_EVICT_KEY_HANDLES, TPM_MIN_COUNTERS, TPM_NUM_FAMILY_TABLE_ENTRY_MIN,
|
---|
77 | TPM_NUM_DELEGATE_TABLE_ENTRY_MIN, etc. and the platform specific requirements for NV defined
|
---|
78 | space.
|
---|
79 | */
|
---|
80 |
|
---|
81 | #ifndef TPM_MAX_NV_SPACE
|
---|
82 |
|
---|
83 |
|
---|
84 |
|
---|
85 | #ifdef TPM_NV_DISK
|
---|
86 | #define TPM_MAX_NV_SPACE 100000 /* arbitrary value */
|
---|
87 | #endif
|
---|
88 |
|
---|
89 | #endif /* TPM_MAX_NV_SPACE */
|
---|
90 |
|
---|
91 | #ifndef TPM_MAX_NV_SPACE
|
---|
92 | #error "TPM_MAX_NV_SPACE is not defined"
|
---|
93 | #endif
|
---|
94 |
|
---|
95 | /* TPM_MAX_SAVESTATE_SPACE defines the maximum NV space for TPM saved state.
|
---|
96 |
|
---|
97 | It is used by TPM_SaveState
|
---|
98 |
|
---|
99 | NOTE This macro is based on the maximum number of loaded keys and session. For example, 3 loaded
|
---|
100 | keys, 3 OSAP sessions, and 1 transport session consumes about 2500 bytes.
|
---|
101 |
|
---|
102 | See TPM_KEY_HANDLES, TPM_NUM_PCR, TPM_MIN_AUTH_SESSIONS, TPM_MIN_TRANS_SESSIONS,
|
---|
103 | TPM_MIN_DAA_SESSIONS, TPM_MIN_SESSION_LIST, etc.
|
---|
104 | */
|
---|
105 |
|
---|
106 | #ifndef TPM_MAX_SAVESTATE_SPACE
|
---|
107 |
|
---|
108 |
|
---|
109 |
|
---|
110 | #ifdef TPM_NV_DISK
|
---|
111 | #define TPM_MAX_SAVESTATE_SPACE 100000 /* arbitrary value */
|
---|
112 | #endif
|
---|
113 |
|
---|
114 | #endif /* TPM_MAX_SAVESTATE_SPACE */
|
---|
115 |
|
---|
116 | #ifndef TPM_MAX_SAVESTATE_SPACE
|
---|
117 | #error "TPM_MAX_SAVESTATE_SPACE is not defined"
|
---|
118 | #endif
|
---|
119 |
|
---|
120 | /* TPM_MAX_VOLATILESTATE_SPACE defines the maximum NV space for TPM volatile state.
|
---|
121 |
|
---|
122 | It is used for applications that save and restore the entire TPM volatile is a non-standard way.
|
---|
123 | */
|
---|
124 |
|
---|
125 | #ifndef TPM_MAX_VOLATILESTATE_SPACE
|
---|
126 |
|
---|
127 |
|
---|
128 | #ifdef TPM_NV_DISK
|
---|
129 | #define TPM_MAX_VOLATILESTATE_SPACE 524288 /* arbitrary value */
|
---|
130 | #endif
|
---|
131 |
|
---|
132 | #endif /* TPM_MAX_VOLATILESTATE_SPACE */
|
---|
133 |
|
---|
134 | #ifndef TPM_MAX_VOLATILESTATE_SPACE
|
---|
135 | #error "TPM_MAX_VOLATILESTATE_SPACE is not defined"
|
---|
136 | #endif
|
---|
137 |
|
---|
138 | #endif
|
---|