diff options
-rw-r--r-- | firmware/include/tpm1_tss_constants.h | 14 | ||||
-rw-r--r-- | firmware/include/tpm2_tss_constants.h | 9 | ||||
-rw-r--r-- | firmware/include/tss_constants.h | 21 |
3 files changed, 21 insertions, 23 deletions
diff --git a/firmware/include/tpm1_tss_constants.h b/firmware/include/tpm1_tss_constants.h index 972f7a3b..97d7358f 100644 --- a/firmware/include/tpm1_tss_constants.h +++ b/firmware/include/tpm1_tss_constants.h @@ -16,20 +16,6 @@ #define TPM_PUBEK_SIZE 256 #define TPM_PCR_DIGEST 20 -#define TPM_E_NON_FATAL 0x800 - -#define TPM_E_AREA_LOCKED ((uint32_t) 0x0000003c) -#define TPM_E_BADINDEX ((uint32_t) 0x00000002) -#define TPM_E_BAD_ORDINAL ((uint32_t) 0x0000000a) -#define TPM_E_BAD_PRESENCE ((uint32_t) 0x0000002d) -#define TPM_E_IOERROR ((uint32_t) 0x0000001f) -#define TPM_E_INVALID_POSTINIT ((uint32_t) 0x00000026) -#define TPM_E_MAXNVWRITES ((uint32_t) 0x00000048) -#define TPM_E_OWNER_SET ((uint32_t) 0x00000014) - -#define TPM_E_NEEDS_SELFTEST ((uint32_t) (TPM_E_NON_FATAL + 1)) -#define TPM_E_DOING_SELFTEST ((uint32_t) (TPM_E_NON_FATAL + 2)) - #define TPM_NV_INDEX0 ((uint32_t) 0x00000000) #define TPM_NV_INDEX_LOCK ((uint32_t) 0xffffffff) #define TPM_NV_PER_GLOBALLOCK (((uint32_t) 1) << 15) diff --git a/firmware/include/tpm2_tss_constants.h b/firmware/include/tpm2_tss_constants.h index f44dc715..498cc954 100644 --- a/firmware/include/tpm2_tss_constants.h +++ b/firmware/include/tpm2_tss_constants.h @@ -30,15 +30,6 @@ #define TPM2_NV_ReadPublic ((TPM_CC)0x00000169) #define TPM2_GetCapability ((TPM_CC)0x0000017A) -/* TCG Spec defined, verify for TPM2. - * TODO(apronin): find TPM2 RC substitutes for TPM1.2 error codes. - */ -#define TPM_E_BADINDEX ((uint32_t) 0x00000002) -#define TPM_E_INVALID_POSTINIT ((uint32_t) 0x00000026) -#define TPM_E_BADTAG ((uint32_t) 0x0000001E) -#define TPM_E_IOERROR ((uint32_t) 0x0000001F) -#define TPM_E_MAXNVWRITES ((uint32_t) 0x00000048) - #define HR_SHIFT 24 #define TPM_HT_NV_INDEX 0x01 #define HR_NV_INDEX (TPM_HT_NV_INDEX << HR_SHIFT) diff --git a/firmware/include/tss_constants.h b/firmware/include/tss_constants.h index e85fa817..1fe92b92 100644 --- a/firmware/include/tss_constants.h +++ b/firmware/include/tss_constants.h @@ -24,6 +24,27 @@ #define TPM_E_STRUCT_SIZE ((uint32_t) 0x0000500b) /* vboot local */ #define TPM_E_STRUCT_VERSION ((uint32_t) 0x0000500c) /* vboot local */ +/* + * AP firmware relies on Tlcl returning these exact TPM1.2 error codes + * regardless of the TPM spec version in certain sitautions. So, TPM2.0 should + * map to these errors when necessary. All TPM2.0-spec-defined errors have + * either 0x100 or 0x80 bit set, so there is no confusion with actual error + * codes returned from a TPM2.0 chip. + */ +#define TPM_E_BADINDEX ((uint32_t) 0x00000002) +#define TPM_E_BAD_ORDINAL ((uint32_t) 0x0000000a) +#define TPM_E_OWNER_SET ((uint32_t) 0x00000014) +#define TPM_E_BADTAG ((uint32_t) 0x0000001e) +#define TPM_E_IOERROR ((uint32_t) 0x0000001f) +#define TPM_E_INVALID_POSTINIT ((uint32_t) 0x00000026) +#define TPM_E_BAD_PRESENCE ((uint32_t) 0x0000002d) +#define TPM_E_AREA_LOCKED ((uint32_t) 0x0000003c) +#define TPM_E_MAXNVWRITES ((uint32_t) 0x00000048) + +#define TPM_E_NON_FATAL 0x800 +#define TPM_E_NEEDS_SELFTEST ((uint32_t) (TPM_E_NON_FATAL + 1)) +#define TPM_E_DOING_SELFTEST ((uint32_t) (TPM_E_NON_FATAL + 2)) + #ifdef TPM2_MODE #include "tpm2_tss_constants.h" #else |