1/*
2 * The TPM error codes extracted from the TPM main specification
3 * version 1.2 revision 85.
4 */
5
6#ifndef __TPM_ERROR_H__
7#define __TPM_ERROR_H__
8
9
10#ifndef TPM_E_BASE
11#define TPM_E_BASE        ((UINT32)0)
12#endif
13
14#ifndef TPM_E_NON_FATAL
15#define TPM_E_NON_FATAL   ((UINT32)0x00000800)
16#endif
17
18
19// Successful completion of the TPM operation.
20#define TPM_SUCCESS    TPM_E_BASE
21
22//
23// MessageId: TPM_E_AUTHFAIL
24//
25// MessageText:
26//
27// Authentication failed
28//
29#define TPM_E_AUTHFAIL ((UINT32)(TPM_E_BASE + 0x00000001))
30
31//
32// MessageId: TPM_E_BADINDEX
33//
34// MessageText:
35//
36// The index to a PCR, DIR or other register is incorrect
37//
38#define TPM_E_BADINDEX ((UINT32)(TPM_E_BASE + 0x00000002))
39
40//
41// MessageId: TPM_E_BAD_PARAMETER
42//
43// MessageText:
44//
45// One or more parameter is bad
46//
47#define TPM_E_BAD_PARAMETER ((UINT32)(TPM_E_BASE + 0x00000003))
48
49//
50// MessageId: TPM_E_AUDITFAILURE
51//
52// MessageText:
53//
54// An operation completed successfully but the auditing of that
55// operation failed.
56//
57#define TPM_E_AUDITFAILURE ((UINT32)(TPM_E_BASE + 0x00000004))
58
59//
60// MessageId: TPM_E_CLEAR_DISABLED
61//
62// MessageText:
63//
64// The clear disable flag is set and all clear operations now require
65// physical access
66//
67#define TPM_E_CLEAR_DISABLED ((UINT32)(TPM_E_BASE + 0x00000005))
68
69//
70// MessageId: TPM_E_DEACTIVATED
71//
72// MessageText:
73//
74// The TPM is deactivated
75//
76#define TPM_E_DEACTIVATED ((UINT32)(TPM_E_BASE + 0x00000006))
77
78//
79// MessageId: TPM_E_DISABLED
80//
81// MessageText:
82//
83// The TPM is disabled
84//
85#define TPM_E_DISABLED ((UINT32)(TPM_E_BASE + 0x00000007))
86
87//
88// MessageId: TPM_E_DISABLED_CMD
89//
90// MessageText:
91//
92// The target command has been disabled
93//
94#define TPM_E_DISABLED_CMD ((UINT32)(TPM_E_BASE + 0x00000008))
95
96//
97// MessageId: TPM_E_FAIL
98//
99// MessageText:
100//
101// The operation failed
102//
103#define TPM_E_FAIL ((UINT32)(TPM_E_BASE + 0x00000009))
104
105//
106// MessageId: TPM_E_BAD_ORDINAL
107//
108// MessageText:
109//
110// The ordinal was unknown or inconsistent
111//
112#define TPM_E_BAD_ORDINAL ((UINT32)(TPM_E_BASE + 0x0000000a))
113
114//
115// MessageId: TPM_E_INSTALL_DISABLED
116//
117// MessageText:
118//
119// The ability to install an owner is disabled
120//
121#define TPM_E_INSTALL_DISABLED ((UINT32)(TPM_E_BASE + 0x0000000b))
122
123//
124// MessageId: TPM_E_INVALID_KEYHANDLE
125//
126// MessageText:
127//
128// The key handle can not be interpreted
129//
130#define TPM_E_INVALID_KEYHANDLE ((UINT32)(TPM_E_BASE + 0x0000000c))
131
132//
133// MessageId: TPM_E_KEYNOTFOUND
134//
135// MessageText:
136//
137// The key handle points to an invalid key
138//
139#define TPM_E_KEYNOTFOUND ((UINT32)(TPM_E_BASE + 0x0000000d))
140
141//
142// MessageId: TPM_E_INAPPROPRIATE_ENC
143//
144// MessageText:
145//
146// Unacceptable encryption scheme
147//
148#define TPM_E_INAPPROPRIATE_ENC ((UINT32)(TPM_E_BASE + 0x0000000e))
149
150//
151// MessageId: TPM_E_MIGRATEFAIL
152//
153// MessageText:
154//
155// Migration authorization failed
156//
157#define TPM_E_MIGRATEFAIL ((UINT32)(TPM_E_BASE + 0x0000000f))
158
159//
160// MessageId: TPM_E_INVALID_PCR_INFO
161//
162// MessageText:
163//
164// PCR information could not be interpreted
165//
166#define TPM_E_INVALID_PCR_INFO ((UINT32)(TPM_E_BASE + 0x00000010))
167
168//
169// MessageId: TPM_E_NOSPACE
170//
171// MessageText:
172//
173// No room to load key.
174//
175#define TPM_E_NOSPACE ((UINT32)(TPM_E_BASE + 0x00000011))
176
177//
178// MessageId: TPM_E_NOSRK
179//
180// MessageText:
181//
182// There is no SRK set
183//
184#define TPM_E_NOSRK ((UINT32)(TPM_E_BASE + 0x00000012))
185
186//
187// MessageId: TPM_E_NOTSEALED_BLOB
188//
189// MessageText:
190//
191// An encrypted blob is invalid or was not created by this TPM
192//
193#define TPM_E_NOTSEALED_BLOB ((UINT32)(TPM_E_BASE + 0x00000013))
194
195//
196// MessageId: TPM_E_OWNER_SET
197//
198// MessageText:
199//
200// There is already an Owner
201//
202#define TPM_E_OWNER_SET ((UINT32)(TPM_E_BASE + 0x00000014))
203
204//
205// MessageId: TPM_E_RESOURCES
206//
207// MessageText:
208//
209// The TPM has insufficient internal resources to perform the
210// requested action.
211//
212#define TPM_E_RESOURCES ((UINT32)(TPM_E_BASE + 0x00000015))
213
214//
215// MessageId: TPM_E_SHORTRANDOM
216//
217// MessageText:
218//
219// A random string was too short
220//
221#define TPM_E_SHORTRANDOM ((UINT32)(TPM_E_BASE + 0x00000016))
222
223//
224// MessageId: TPM_E_SIZE
225//
226// MessageText:
227//
228// The TPM does not have the space to perform the operation.
229//
230#define TPM_E_SIZE ((UINT32)(TPM_E_BASE + 0x00000017))
231
232//
233// MessageId: TPM_E_WRONGPCRVAL
234//
235// MessageText:
236//
237// The named PCR value does not match the current PCR value.
238//
239#define TPM_E_WRONGPCRVAL ((UINT32)(TPM_E_BASE + 0x00000018))
240
241//
242// MessageId: TPM_E_BAD_PARAM_SIZE
243//
244// MessageText:
245//
246// The paramSize argument to the command has the incorrect value
247//
248#define TPM_E_BAD_PARAM_SIZE ((UINT32)(TPM_E_BASE + 0x00000019))
249
250//
251// MessageId: TPM_E_SHA_THREAD
252//
253// MessageText:
254//
255// There is no existing SHA-1 thread.
256//
257#define TPM_E_SHA_THREAD ((UINT32)(TPM_E_BASE + 0x0000001a))
258
259//
260// MessageId: TPM_E_SHA_ERROR
261//
262// MessageText:
263//
264// The calculation is unable to proceed because the existing SHA-1
265// thread has already encountered an error.
266//
267#define TPM_E_SHA_ERROR ((UINT32)(TPM_E_BASE + 0x0000001b))
268
269//
270// MessageId: TPM_E_FAILEDSELFTEST
271//
272// MessageText:
273//
274// Self-test has failed and the TPM has shutdown.
275//
276#define TPM_E_FAILEDSELFTEST ((UINT32)(TPM_E_BASE + 0x0000001c))
277
278//
279// MessageId: TPM_E_AUTH2FAIL
280//
281// MessageText:
282//
283// The authorization for the second key in a 2 key function failed
284// authorization
285//
286#define TPM_E_AUTH2FAIL ((UINT32)(TPM_E_BASE + 0x0000001d))
287
288//
289// MessageId: TPM_E_BADTAG
290//
291// MessageText:
292//
293// The tag value sent to for a command is invalid
294//
295#define TPM_E_BADTAG ((UINT32)(TPM_E_BASE + 0x0000001e))
296
297//
298// MessageId: TPM_E_IOERROR
299//
300// MessageText:
301//
302// An IO error occurred transmitting information to the TPM
303//
304#define TPM_E_IOERROR ((UINT32)(TPM_E_BASE + 0x0000001f))
305
306//
307// MessageId: TPM_E_ENCRYPT_ERROR
308//
309// MessageText:
310//
311// The encryption process had a problem.
312//
313#define TPM_E_ENCRYPT_ERROR ((UINT32)(TPM_E_BASE + 0x00000020))
314
315//
316// MessageId: TPM_E_DECRYPT_ERROR
317//
318// MessageText:
319//
320// The decryption process did not complete.
321//
322#define TPM_E_DECRYPT_ERROR ((UINT32)(TPM_E_BASE + 0x00000021))
323
324//
325// MessageId: TPM_E_INVALID_AUTHHANDLE
326//
327// MessageText:
328//
329// An invalid handle was used.
330//
331#define TPM_E_INVALID_AUTHHANDLE ((UINT32)(TPM_E_BASE + 0x00000022))
332
333//
334// MessageId: TPM_E_NO_ENDORSEMENT
335//
336// MessageText:
337//
338// The TPM does not a EK installed
339//
340#define TPM_E_NO_ENDORSEMENT ((UINT32)(TPM_E_BASE + 0x00000023))
341
342//
343// MessageId: TPM_E_INVALID_KEYUSAGE
344//
345// MessageText:
346//
347// The usage of a key is not allowed
348//
349#define TPM_E_INVALID_KEYUSAGE ((UINT32)(TPM_E_BASE + 0x00000024))
350
351//
352// MessageId: TPM_E_WRONG_ENTITYTYPE
353//
354// MessageText:
355//
356// The submitted entity type is not allowed
357//
358#define TPM_E_WRONG_ENTITYTYPE ((UINT32)(TPM_E_BASE + 0x00000025))
359
360//
361// MessageId: TPM_E_INVALID_POSTINIT
362//
363// MessageText:
364//
365// The command was received in the wrong sequence relative to TPM_Init
366// and a subsequent TPM_Startup
367//
368#define TPM_E_INVALID_POSTINIT ((UINT32)(TPM_E_BASE + 0x00000026))
369
370//
371// MessageId: TPM_E_INAPPROPRIATE_SIG
372//
373// MessageText:
374//
375// Signed data cannot include additional DER information
376//
377#define TPM_E_INAPPROPRIATE_SIG ((UINT32)(TPM_E_BASE + 0x00000027))
378
379//
380// MessageId: TPM_E_BAD_KEY_PROPERTY
381//
382// MessageText:
383//
384// The key properties in TPM_KEY_PARMs are not supported by this TPM
385//
386#define TPM_E_BAD_KEY_PROPERTY ((UINT32)(TPM_E_BASE + 0x00000028))
387
388//
389// MessageId: TPM_E_BAD_MIGRATION
390//
391// MessageText:
392//
393// The migration properties of this key are incorrect.
394//
395#define TPM_E_BAD_MIGRATION ((UINT32)(TPM_E_BASE + 0x00000029))
396
397//
398// MessageId: TPM_E_BAD_SCHEME
399//
400// MessageText:
401//
402// The signature or encryption scheme for this key is incorrect or not
403// permitted in this situation.
404//
405#define TPM_E_BAD_SCHEME ((UINT32)(TPM_E_BASE + 0x0000002a))
406
407//
408// MessageId: TPM_E_BAD_DATASIZE
409//
410// MessageText:
411//
412// The size of the data (or blob) parameter is bad or inconsistent
413// with the referenced key
414//
415#define TPM_E_BAD_DATASIZE ((UINT32)(TPM_E_BASE + 0x0000002b))
416
417//
418// MessageId: TPM_E_BAD_MODE
419//
420// MessageText:
421//
422// A mode parameter is bad, such as capArea or subCapArea for
423// TPM_GetCapability, physicalPresence parameter for
424// TPM_PhysicalPresence, or migrationType for TPM_CreateMigrationBlob.
425//
426#define TPM_E_BAD_MODE ((UINT32)(TPM_E_BASE + 0x0000002c))
427
428//
429// MessageId: TPM_E_BAD_PRESENCE
430//
431// MessageText:
432//
433// Either the physicalPresence or physicalPresenceLock bits have the
434// wrong value
435//
436#define TPM_E_BAD_PRESENCE ((UINT32)(TPM_E_BASE + 0x0000002d))
437
438//
439// MessageId: TPM_E_BAD_VERSION
440//
441// MessageText:
442//
443// The TPM cannot perform this version of the capability
444//
445#define TPM_E_BAD_VERSION ((UINT32)(TPM_E_BASE + 0x0000002e))
446
447//
448// MessageId: TPM_E_NO_WRAP_TRANSPORT
449//
450// MessageText:
451//
452// The TPM does not allow for wrapped transport sessions
453//
454#define TPM_E_NO_WRAP_TRANSPORT ((UINT32)(TPM_E_BASE + 0x0000002f))
455
456//
457// MessageId: TPM_E_AUDITFAIL_UNSUCCESSFUL
458//
459// MessageText:
460//
461// TPM audit construction failed and the underlying command was
462// returning a failure code also
463//
464#define TPM_E_AUDITFAIL_UNSUCCESSFUL ((UINT32)(TPM_E_BASE + 0x00000030))
465
466//
467// MessageId: TPM_E_AUDITFAIL_SUCCESSFUL
468//
469// MessageText:
470//
471// TPM audit construction failed and the underlying command was
472// returning success
473//
474#define TPM_E_AUDITFAIL_SUCCESSFUL ((UINT32)(TPM_E_BASE + 0x00000031))
475
476//
477// MessageId: TPM_E_NOTRESETABLE
478//
479// MessageText:
480//
481// Attempt to reset a PCR register that does not have the resettable
482// attribute
483//
484#define TPM_E_NOTRESETABLE ((UINT32)(TPM_E_BASE + 0x00000032))
485
486//
487// MessageId: TPM_E_NOTLOCAL
488//
489// MessageText:
490//
491// Attempt to reset a PCR register that requires locality and locality
492// modifier not part of command transport
493//
494#define TPM_E_NOTLOCAL ((UINT32)(TPM_E_BASE + 0x00000033))
495
496//
497// MessageId: TPM_E_BAD_TYPE
498//
499// MessageText:
500//
501// Make identity blob not properly typed
502//
503#define TPM_E_BAD_TYPE ((UINT32)(TPM_E_BASE + 0x00000034))
504
505//
506// MessageId: TPM_E_INVALID_RESOURCE
507//
508// MessageText:
509//
510// When saving context identified resource type does not match actual
511// resource
512//
513#define TPM_E_INVALID_RESOURCE ((UINT32)(TPM_E_BASE + 0x00000035))
514
515//
516// MessageId: TPM_E_NOTFIPS
517//
518// MessageText:
519//
520// The TPM is attempting to execute a command only available when in
521// FIPS mode
522//
523#define TPM_E_NOTFIPS ((UINT32)(TPM_E_BASE + 0x00000036))
524
525//
526// MessageId: TPM_E_INVALID_FAMILY
527//
528// MessageText:
529//
530// The command is attempting to use an invalid family ID
531//
532#define TPM_E_INVALID_FAMILY ((UINT32)(TPM_E_BASE + 0x00000037))
533
534//
535// MessageId: TPM_E_NO_NV_PERMISSION
536//
537// MessageText:
538//
539// The permission to manipulate the NV storage is not available
540//
541#define TPM_E_NO_NV_PERMISSION ((UINT32)(TPM_E_BASE + 0x00000038))
542
543//
544// MessageId: TPM_E_REQUIRES_SIGN
545//
546// MessageText:
547//
548// The operation requires a signed command
549//
550#define TPM_E_REQUIRES_SIGN ((UINT32)(TPM_E_BASE + 0x00000039))
551
552//
553// MessageId: TPM_E_KEY_NOTSUPPORTED
554//
555// MessageText:
556//
557// Wrong operation to load an NV key
558//
559#define TPM_E_KEY_NOTSUPPORTED ((UINT32)(TPM_E_BASE + 0x0000003a))
560
561//
562// MessageId: TPM_E_AUTH_CONFLICT
563//
564// MessageText:
565//
566// NV_LoadKey blob requires both owner and blob authorization
567//
568#define TPM_E_AUTH_CONFLICT ((UINT32)(TPM_E_BASE + 0x0000003b))
569
570//
571// MessageId: TPM_E_AREA_LOCKED
572//
573// MessageText:
574//
575// The NV area is locked and not writable
576//
577#define TPM_E_AREA_LOCKED ((UINT32)(TPM_E_BASE + 0x0000003c))
578
579//
580// MessageId: TPM_E_BAD_LOCALITY
581//
582// MessageText:
583//
584// The locality is incorrect for the attempted operation
585//
586#define TPM_E_BAD_LOCALITY ((UINT32)(TPM_E_BASE + 0x0000003d))
587
588//
589// MessageId: TPM_E_READ_ONLY
590//
591// MessageText:
592//
593// The NV area is read only and can't be written to
594//
595#define TPM_E_READ_ONLY ((UINT32)(TPM_E_BASE + 0x0000003e))
596
597//
598// MessageId: TPM_E_PER_NOWRITE
599//
600// MessageText:
601//
602// There is no protection on the write to the NV area
603//
604#define TPM_E_PER_NOWRITE ((UINT32)(TPM_E_BASE + 0x0000003f))
605
606//
607// MessageId: TPM_E_FAMILYCOUNT
608//
609// MessageText:
610//
611// The family count value does not match
612//
613#define TPM_E_FAMILYCOUNT ((UINT32)(TPM_E_BASE + 0x00000040))
614
615//
616// MessageId: TPM_E_WRITE_LOCKED
617//
618// MessageText:
619//
620// The NV area has already been written to
621//
622#define TPM_E_WRITE_LOCKED ((UINT32)(TPM_E_BASE + 0x00000041))
623
624//
625// MessageId: TPM_E_BAD_ATTRIBUTES
626//
627// MessageText:
628//
629// The NV area attributes conflict
630//
631#define TPM_E_BAD_ATTRIBUTES ((UINT32)(TPM_E_BASE + 0x00000042))
632
633//
634// MessageId: TPM_E_INVALID_STRUCTURE
635//
636// MessageText:
637//
638// The structure tag and version are invalid or inconsistent
639//
640#define TPM_E_INVALID_STRUCTURE ((UINT32)(TPM_E_BASE + 0x00000043))
641
642//
643// MessageId: TPM_E_KEY_OWNER_CONTROL
644//
645// MessageText:
646//
647// The key is under control of the TPM Owner and can only be evicted
648// by the TPM Owner.
649//
650#define TPM_E_KEY_OWNER_CONTROL ((UINT32)(TPM_E_BASE + 0x00000044))
651
652//
653// MessageId: TPM_E_BAD_COUNTER
654//
655// MessageText:
656//
657// The counter handle is incorrect
658//
659#define TPM_E_BAD_COUNTER ((UINT32)(TPM_E_BASE + 0x00000045))
660
661//
662// MessageId: TPM_E_NOT_FULLWRITE
663//
664// MessageText:
665//
666// The write is not a complete write of the area
667//
668#define TPM_E_NOT_FULLWRITE ((UINT32)(TPM_E_BASE + 0x00000046))
669
670//
671// MessageId: TPM_E_CONTEXT_GAP
672//
673// MessageText:
674//
675// The gap between saved context counts is too large
676//
677#define TPM_E_CONTEXT_GAP ((UINT32)(TPM_E_BASE + 0x00000047))
678
679//
680// MessageId: TPM_E_MAXNVWRITES
681//
682// MessageText:
683//
684// The maximum number of NV writes without an owner has been exceeded
685//
686#define TPM_E_MAXNVWRITES ((UINT32)(TPM_E_BASE + 0x00000048))
687
688//
689// MessageId: TPM_E_NOOPERATOR
690//
691// MessageText:
692//
693// No operator AuthData value is set
694//
695#define TPM_E_NOOPERATOR ((UINT32)(TPM_E_BASE + 0x00000049))
696
697//
698// MessageId: TPM_E_RESOURCEMISSING
699//
700// MessageText:
701//
702// The resource pointed to by context is not loaded
703//
704#define TPM_E_RESOURCEMISSING ((UINT32)(TPM_E_BASE + 0x0000004a))
705
706//
707// MessageId: TPM_E_DELEGATE_LOCK
708//
709// MessageText:
710//
711// The delegate administration is locked
712//
713#define TPM_E_DELEGATE_LOCK ((UINT32)(TPM_E_BASE + 0x0000004b))
714
715//
716// MessageId: TPM_E_DELEGATE_FAMILY
717//
718// MessageText:
719//
720// Attempt to manage a family other then the delegated family
721//
722#define TPM_E_DELEGATE_FAMILY ((UINT32)(TPM_E_BASE + 0x0000004c))
723
724//
725// MessageId: TPM_E_DELEGATE_ADMIN
726//
727// MessageText:
728//
729// Delegation table management not enabled
730//
731#define TPM_E_DELEGATE_ADMIN ((UINT32)(TPM_E_BASE + 0x0000004d))
732
733//
734// MessageId: TPM_E_TRANSPORT_NOTEXCLUSIVE
735//
736// MessageText:
737//
738// There was a command executed outside of an exclusive transport session
739//
740#define TPM_E_TRANSPORT_NOTEXCLUSIVE ((UINT32)(TPM_E_BASE + 0x0000004e))
741
742//
743// MessageId: TPM_E_OWNER_CONTROL
744//
745// MessageText:
746//
747// Attempt to context save a owner evict controlled key
748//
749#define TPM_E_OWNER_CONTROL ((UINT32)(TPM_E_BASE + 0x0000004f))
750
751//
752// MessageId: TPM_E_DAA_RESOURCES
753//
754// MessageText:
755//
756// The DAA command has no resources available to execute the command
757//
758#define TPM_E_DAA_RESOURCES ((UINT32)(TPM_E_BASE + 0x00000050))
759
760//
761// MessageId: TPM_E_DAA_INPUT_DATA0
762//
763// MessageText:
764//
765// The consistency check on DAA parameter inputData0 has failed.
766//
767#define TPM_E_DAA_INPUT_DATA0 ((UINT32)(TPM_E_BASE + 0x00000051))
768
769//
770// MessageId: TPM_E_DAA_INPUT_DATA1
771//
772// MessageText:
773//
774// The consistency check on DAA parameter inputData1 has failed.
775//
776#define TPM_E_DAA_INPUT_DATA1 ((UINT32)(TPM_E_BASE + 0x00000052))
777
778//
779// MessageId: TPM_E_DAA_ISSUER_SETTINGS
780//
781// MessageText:
782//
783// The consistency check on DAA_issuerSettings has failed.
784//
785#define TPM_E_DAA_ISSUER_SETTINGS ((UINT32)(TPM_E_BASE + 0x00000053))
786
787//
788// MessageId: TPM_E_DAA_TPM_SETTINGS
789//
790// MessageText:
791//
792// The consistency check on DAA_tpmSpecific has failed.
793//
794#define TPM_E_DAA_TPM_SETTINGS ((UINT32)(TPM_E_BASE + 0x00000054))
795
796//
797// MessageId: TPM_E_DAA_STAGE
798//
799// MessageText:
800//
801// The atomic process indicated by the submitted DAA command is not
802// the expected process.
803//
804#define TPM_E_DAA_STAGE ((UINT32)(TPM_E_BASE + 0x00000055))
805
806//
807// MessageId: TPM_E_DAA_ISSUER_VALIDITY
808//
809// MessageText:
810//
811// The issuer's validity check has detected an inconsistency
812//
813#define TPM_E_DAA_ISSUER_VALIDITY ((UINT32)(TPM_E_BASE + 0x00000056))
814
815//
816// MessageId: TPM_E_DAA_WRONG_W
817//
818// MessageText:
819//
820// The consistency check on w has failed.
821//
822#define TPM_E_DAA_WRONG_W ((UINT32)(TPM_E_BASE + 0x00000057))
823
824//
825// MessageId: TPM_E_BAD_HANDLE
826//
827// MessageText:
828//
829// The handle is incorrect
830//
831#define TPM_E_BAD_HANDLE ((UINT32)(TPM_E_BASE + 0x00000058))
832
833//
834// MessageId: TPM_E_BAD_DELEGATE
835//
836// MessageText:
837//
838// Delegation is not correct
839//
840#define TPM_E_BAD_DELEGATE ((UINT32)(TPM_E_BASE + 0x00000059))
841
842//
843// MessageId: TPM_E_BADCONTEXT
844//
845// MessageText:
846//
847// The context blob is invalid
848//
849#define TPM_E_BADCONTEXT ((UINT32)(TPM_E_BASE + 0x0000005a))
850
851//
852// MessageId: TPM_E_TOOMANYCONTEXTS
853//
854// MessageText:
855//
856// Too many contexts held by the TPM
857//
858#define TPM_E_TOOMANYCONTEXTS ((UINT32)(TPM_E_BASE + 0x0000005b))
859
860//
861// MessageId: TPM_E_MA_TICKET_SIGNATURE
862//
863// MessageText:
864//
865// Migration authority signature validation failure
866//
867#define TPM_E_MA_TICKET_SIGNATURE ((UINT32)(TPM_E_BASE + 0x0000005c))
868
869//
870// MessageId: TPM_E_MA_DESTINATION
871//
872// MessageText:
873//
874// Migration destination not authenticated
875//
876#define TPM_E_MA_DESTINATION ((UINT32)(TPM_E_BASE + 0x0000005d))
877
878//
879// MessageId: TPM_E_MA_SOURCE
880//
881// MessageText:
882//
883// Migration source incorrect
884//
885#define TPM_E_MA_SOURCE ((UINT32)(TPM_E_BASE + 0x0000005e))
886
887//
888// MessageId: TPM_E_MA_AUTHORITY
889//
890// MessageText:
891//
892// Incorrect migration authority
893//
894#define TPM_E_MA_AUTHORITY ((UINT32)(TPM_E_BASE + 0x0000005f))
895
896//
897// MessageId: TPM_E_PERMANENTEK
898//
899// MessageText:
900//
901// Attempt to revoke the EK and the EK is not revocable
902//
903#define TPM_E_PERMANENTEK ((UINT32)(TPM_E_BASE + 0x00000061))
904
905//
906// MessageId: TPM_E_BAD_SIGNATURE
907//
908// MessageText:
909//
910// Bad signature of CMK ticket
911//
912#define TPM_E_BAD_SIGNATURE ((UINT32)(TPM_E_BASE + 0x00000062))
913
914//
915// MessageId: TPM_E_NOCONTEXTSPACE
916//
917// MessageText:
918//
919// There is no room in the context list for additional contexts
920//
921#define TPM_E_NOCONTEXTSPACE  ((UINT32)(TPM_E_BASE + 0x00000063))
922
923
924//
925// MessageId: TPM_E_RETRY
926//
927// MessageText:
928//
929// The TPM is too busy to respond to the command immediately, but the
930// command could be resubmitted at a later time. The TPM MAY return
931// TPM_Retry for any command at any time.
932//
933#define TPM_E_RETRY ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL))
934
935//
936// MessageId: TPM_E_NEEDS_SELFTEST
937//
938// MessageText:
939//
940// SelfTestFull has not been run
941//
942#define TPM_E_NEEDS_SELFTEST ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 1))
943
944//
945// MessageId: TPM_E_DOING_SELFTEST
946//
947// MessageText:
948//
949// The TPM is currently executing a full selftest
950//
951#define TPM_E_DOING_SELFTEST ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 2))
952
953//
954// MessageId: TPM_E_DEFEND_LOCK_RUNNING
955//
956// MessageText:
957//
958// The TPM is defending against dictionary attacks and is in some
959// time-out period.
960//
961#define TPM_E_DEFEND_LOCK_RUNNING ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 3))
962
963#endif /* __TPM_ERROR_H__ */
964