diff options
-rw-r--r-- | src/include/tpm_lite/tss_constants.h | 5 | ||||
-rw-r--r-- | src/lib/tpm2_tlcl.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/include/tpm_lite/tss_constants.h b/src/include/tpm_lite/tss_constants.h index 883a5ad85e..eda7d6b31b 100644 --- a/src/include/tpm_lite/tss_constants.h +++ b/src/include/tpm_lite/tss_constants.h @@ -40,6 +40,7 @@ #define TPM_E_WRITE_FAILURE ((uint32_t)0x00005008) /* vboot local */ #define TPM_E_READ_EMPTY ((uint32_t)0x00005009) /* vboot local */ #define TPM_E_READ_FAILURE ((uint32_t)0x0000500a) /* vboot local */ +#define TPM_E_NV_DEFINED ((uint32_t)0x0000500b) /* vboot local */ #define TPM_NV_INDEX0 ((uint32_t)0x00000000) #define TPM_NV_INDEX_LOCK ((uint32_t)0xffffffff) @@ -56,6 +57,10 @@ #define TPM_TAG_RSP_AUTH1_COMMAND ((uint16_t) 0xc5) #define TPM_TAG_RSP_AUTH2_COMMAND ((uint16_t) 0xc6) +/* Some TPM2 return codes used in this library. */ +#define TPM2_RC_SUCCESS 0 +#define TPM2_RC_NV_DEFINED 0x14c + typedef uint8_t TSS_BOOL; typedef uint16_t TPM_STRUCTURE_TAG; diff --git a/src/lib/tpm2_tlcl.c b/src/lib/tpm2_tlcl.c index 457e874798..6f5243e160 100644 --- a/src/lib/tpm2_tlcl.c +++ b/src/lib/tpm2_tlcl.c @@ -359,6 +359,13 @@ uint32_t tlcl_define_space(uint32_t space_index, size_t space_size) if (!response) return TPM_E_NO_DEVICE; - return response->hdr.tpm_code ? TPM_E_INTERNAL_INCONSISTENCY : - TPM_SUCCESS; + /* Map TPM2 retrun codes into common vboot represenation. */ + switch(response->hdr.tpm_code) { + case TPM2_RC_SUCCESS: + return TPM_SUCCESS; + case TPM2_RC_NV_DEFINED: + return TPM_E_NV_DEFINED; + default: + return TPM_E_INTERNAL_INCONSISTENCY; + } } |